尝试在CodeIgniter中为产品类别上传制作选择列表

时间:2017-09-12 09:20:08

标签: php codeigniter drop-down-menu codeigniter-3

我正在建立一个网站,以便用户可以在网站上添加产品。在用户可以添加某个产品的表单上,我尝试创建一个选择下拉栏,以便用户可以选择属于某个产品的某个类别,但我不确定我该怎么做.. < / p>

    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

这是我的db帮助文件(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;
    } } ?>

这是我的Product_model文件,我在其中创建了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;
    }
}
?>

这是我的观看表单,我试图选择类别的选项栏:

<?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>

当我加载视图表单时,我没有看到一个下拉类别选项菜单,但是当我点击它们时,我看到10个小的选择栏是空的。 (PS:我在我的数据库中插入了10个类别)

我希望有人可以帮助我

2 个答案:

答案 0 :(得分:2)

问题在于:

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

您已将select标记放在循环中,a标记不是select的一部分。只将option放在循环中并从循环中排除select

将代码更改为:

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

答案 1 :(得分:2)

将您的选择标记代码更改为:

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

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

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

注意:

1)Select标记必须在循环的一边。

2)使用option,而选择标记不是anchor **