2017-09-12 2 views
0

Je crée un site Web afin que les utilisateurs peuvent ajouter des produits sur le site. Sur le formulaire où les utilisateurs peuvent ajouter un certain produit, j'essaie de créer une liste déroulante afin que les utilisateurs puissent sélectionner une certaine catégorie qui appartient à un produit, mais je ne suis pas sûr de savoir comment faire.Essayer de faire une liste de sélection pour la catégorie de produits télécharger dans CodeIgniter

Database info: 
    category table: categories 
    Rows in the category table: 
    1. id 
    2. name 
In my products table I also have a row called: category_id 

Ceci est mon fichier d'aide db (de db_helper.php):

<?php if (!function_exists('get_categories_h')) { 
    function get_categories_h(){ 
     $CI = get_instance(); 
     $categories = $CI->Product_model->get_categories(); 
     return $categories; 
    } } ?> 

C'est mon fichier Product_model où j'ai fait la fonction get_categories:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Product_model extends CI_model { 

    public function saveProduct($data) { 
     $this->db->insert('products', $data); 
     $product_id = $this->db->insert_id(); 
     return $product_id; 
    } 
    public function get_product_details($product_id) { 
     $arrReturn = array(); 
     $this->db->select('*'); 
     $this->db->from('products'); 
     $this->db->where('product_id', $product_id); 
     $query = $this->db->get(); 
     $result = $query->result_array(); 
     if (!empty($result)) { 
      $arrReturn = $result[0]; 
     } 
     return $arrReturn; 
    } 
    /* 
     Get categories 
    */ 
    public function get_categories(){ 
     $this->db->select('*'); 
     $this->db->from('categories'); 
     $query = $this->db->get(); 
     $result = $query->result_array(); 
     return $result; 
    } 
} 
?> 

Ceci est ma forme de vue où je suis essayer faire l'option de sélection de la barre des catégories:

<?php echo form_open_multipart('Product/upload'); ?> 
    <table class="aanbieding-cadeau"> 
     <tr> 
      <td> 
       <?php echo form_input(array('id'=>'product_naam', 'name'=>'product_naam', 'placeholder' => '1. Naam van het cadeau', 'size'=>25));?> 
      </td> 
     </tr> 
     <tr> 
      <?php foreach (get_categories_h() as $category) : ?> 
       <select name="category"> 
        <a href="#"><?php echo $category['name']; ?></a> 
       </select> 
      <?php endforeach; ?> 
     </tr> 

     <tr> 
      <td> 
       <?php echo form_input(array('id'=>'ophaal_plaats', 'name'=>'ophaal_plaats', 'placeholder' => '3.Kies een stad', 'size'=>25));?> 
      </td> 
     </tr> 
     <div class="checkbox"> 
      <label><input type="checkbox" value="">Gebruik adres van mijn account</label> 
     </div> 
     <tr> 
      <td> 
       <h4>Upload foto</h4> 
       <input type="file" name="userfile" /> 
      </td> 
     </tr> 

     <tr> 
      <td> 
       <?php echo form_textarea(array('type'=>'textarea','id'=>'product_beschrijving', 'name'=>'product_beschrijving', 'placeholder' => '5. Vertel iets over dit cadeau..', 'size'=>25));?> 
      </td> 
     </tr> 

     <tr> 
      <td> 
       <input type="submit" class="btn btn-primary" name="submit" value="Cadeau aanbieden!" /> 
      </td> 
     </tr> 
    </table> 
</form> 

Quand je charge le formulaire de vue, je ne vois pas une catégorie menu d'options déroulant mais je vois 10 petits selectbars qui sont vides lorsque vous cliquez dessus. (PS: J'ai inséré 10 catégories à ma base de données)

J'espère que quelqu'un peut me aider

Répondre

2

La question est ici:

<?php foreach (get_categories_h() as $category) : ?> 
    <select name="category"> 
     <a href="#"><?php echo $category['name']; ?> 
     </a> 
    </select> 
<?php endforeach; ?> 

vous avez mis la balise select dans la boucle, et a tag n'est pas la partie de select. Mettez uniquement le option dans la boucle et excluez la boucle select.

Modifier le code:

<select name="category"> 
<?php foreach (get_categories_h() as $category) : ?> 
    <option><?php echo $category['name']; ?></option> 
<?php endforeach; ?> 
</select> 
+0

merci beaucoup – lablanco

+0

homme Profitez du code! –

+0

Aussi, pouvez-vous maintenant comment je peux insérer ma ligne category_id lorsque vous sélectionnez une catégorie? – lablanco

2

Modifier votre sélection de code tag pour:

<tr> 
    <select name="category"> 
     <?php foreach (get_categories_h() as $category) : ?> 

     <option ><?php echo $category['name']; ?></option> 

     <?php endforeach; ?> 
    </select> 
    </tr> 

Note:

1) étiquette Select doit être côté de la boucle.

2) utiliser option avec balise select non anchor **