我有一个为 foreach 语句提供的下拉菜单,在选择时我需要它打开另一个下拉菜单来指定项目
下拉菜单 1 - 类别(全部完成)
点击类别
打开与该类别关联的所有产品。
我是否应该执行 Ajax 请求,然后在 Controller 中选择该类别下的所有产品 - 返回数组,然后提供 foreach 语句来选择这些产品?
也希望能提供以前做过类似事情的链接。
最佳答案
这是我用来创建 ajax 驱动的多个下拉菜单的代码片段。实际上,为了简单起见,我有两种方法,我发布了最简单的方法,即一种没有 json 操作的方法。
在查看页面
<select class="form-control" name="categories" id="categories" onchange="load_products()" >
<option value="" selected="selected"><?php echo "Select A Category" ; ?></option>
</select>
<select class="form-control" name="products" id="products" required/></select>
View 页面中的 JavaScript 代码
<script>
function load_products()
{
categories=$('#categories').val();
if($('#categories').val()!="" && $('#categories').val()!="*") {
$.ajax({
type: "POST",
url: " <?php echo base_url('Home/load_products'); ?>",
data: "categories=" + categories,
success: function (msg) {
if (msg) {
$('#products').html(msg);
// $('#products').removeClass('hidden')
}
}
});
// return false;
}
else {
$('#products').html('');
// $('#products').addClass('hidden')
}
}
</script>
现在在 Controller 中
function load_products()
{
$categories=$this->input->post('categories');
$products=$this->Homemodel->allproducts($categories);
if($products!=NULL)
{
$fop="Select A Product ";
echo ($this->create_drop_down($fop,$products,'productname','id'));
}
else{
echo "<option value=''>No Product Found</option>";
}
}
function create_drop_down($options,$opts,$txt,$val)
{
$options = "<option value=''>".$options."</option>";
if(!empty($opts))
{
foreach ($opts as $row)
{
$options.="<option value='".$row->$val."'>".$row->$txt."</option>";
}
}
return $options;
}
我正在跳过模型代码。如果此方法不适合您,请在下面评论。
关于javascript - 下拉菜单打开另一个下拉菜单 - CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641471/