我正在建立一个网站,以便用户可以在网站上添加产品。在用户可以添加某个产品的表单上,我尝试创建一个选择下拉栏,以便用户可以选择属于某个产品的某个类别,但我不确定我该怎么做.. < / 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个类别)
我希望有人可以帮助我
答案 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
**