我有一个下拉菜单,我提供foreach语句for和on select我需要它打开另一个下拉菜单来指定项目
DropDown 1 - 分类(全部完成)
点击类别
打开与该类别关联的所有产品。
我应该执行Ajax请求然后在控制器中选择该类别下的所有产品 - 返回数组然后提供foreach语句来选择这些产品吗?
还会感谢以前做过类似事情的链接。
答案 0 :(得分:0)
以下是我用于创建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>
视图页面中的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>
现在在控制器中
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;
}
我正在跳过模型代码。如果这种方法不起作用,请在下面评论。