javascript - 下拉菜单打开另一个下拉菜单 - CodeIgniter

标签 javascript php jquery html codeigniter

我有一个为 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/

相关文章:

javascript - 无法在codeIgniter PHP中接收ajax请求

php - php 7.4 写入变量中的 Twig 问题

javascript - Jquery的.load()通过URL中的特定ID从MySQL数据库获取数据

jquery - 在 jquery click 事件第一次获得值但第二次它变为空时

javascript - 有序列表中的 2 个不同标记

javascript - 在 Angular 中通过复选框过滤项目

javascript - 在 ASP.NET 中验证器后显示弹出窗口

javascript - may .reduce concatenate 和解决方案有什么区别?

php - 来自 url 的 file_get_contents 只能在登录网站后访问

javascript - 如何使用jquery正确加载php文件