【问题标题】:Dynamic dependent Dropdown on CodeigniterCodeigniter 上的动态相关下拉列表
【发布时间】:2018-03-20 20:30:20
【问题描述】:

我正在开发一个在 codeigniter 上使用动态相关下拉列表的项目。对不起,我在编码方面很新。我有一个表,它获取正在运行的服务的 id,但获取依赖于该服务的另一个表不起作用。我在谷歌浏览器中使用了控制台工具,并显示它获取了另一个表的选项值,但它在我的浏览器中显示了一个空白的选择输入。

shows the option value in my dbase

这是我的代码:控制器:

public function get_procedures()
{
    $servID = $this->input->post('servID');
    $result = $this->Laboratory_Model->get_all_products1($servID);
    if(count($result)>0)
    {
        $pro_select_box = '';
        $pro_select_box .= '<option value="">Select s</option>';
        foreach ($result as $rows) {



         $pro_select_box .='<option value="'.$rows->itemNum.', '.$rows->prodName.' ">'.$rows->prodName.'</option>';
        }
        echo $pro_select_box;
    }
}

js:

       $('#servID').on('change', function(){
            var servID = $(this).val();
            if(servID == '')
            {
                $('#servPRO').attr('disabled', true);
            }
            else
            {
                $('#servPRO').attr('disabled', false);

                $.ajax({
                    url:"<?php echo base_url() ?>get_procedures",
                    type: "POST",
                    data: {'servID' : servID},
                    dataType: 'html',

                    success: function(data){
                       $('#servPRO').html(servID);
                    },
                    error: function(){
                        alert('Error occur...!!');
                    }
                });
            }
       }); 

实验室模型:

        public function get_all_products1($servID){
    $query = $this->db->get_where('laboratory', array('servID' => $servID));
    if($query->num_rows() > 0){
        return $query->result();
    } else {
        return NULL;
    }
}

观看次数:

    <select name ="servID" id="servID" class="form-control" data-live-search="true">
                      <option value = 'null'>-Select Category-</option>
                          <?php foreach($service as $rows): ?>
                              <option value = '<?php echo $rows->servID?>'><?php echo $rows->service_cat?></option>
                          <?php endforeach ?>
                  </select>
    </select> <select class="form-control"  name="servPRO" id="servPRO">
    </select>

【问题讨论】:

  • 你能显示返回的选项数据的完整版本吗?
  • @HastaDhana 在这里,它显示了我想要在选项

标签: javascript php codeigniter


【解决方案1】:

您在 ajax success 方法上输入了带有请求参数的错误返回变量,提供的变量应该是 data 而不是 servID

$.ajax({
    url:"<?php echo base_url() ?>get_procedures",
    type: "POST",
    data: {'servID' : servID},
    dataType: 'html',

    success: function(data){
       $('#servPRO').html(data); // change servID to data
    },
    error: function(){
        alert('Error occur...!!');
    }
});

编辑

更改默认ServID选择

<option value='null'>-Select Category-</option>

<option value=''>-Select Category-</option>

因为'null' 不等于''

并设置下拉菜单的初始状态:

$('#servPRO').attr('disabled', $('#servID').val() == '' ? true : false ); // set initial state

$('#servID').on('change', function(){
    var servID = $(this).val();
    if(servID == '')
    {
        $('#servPRO').attr('disabled', true);
    }
    else
    {
        $('#servPRO').attr('disabled', false);

        $.ajax({
            url:"<?php echo base_url() ?>get_procedures",
            type: "POST",
            data: {'servID' : servID},
            dataType: 'html',

            success: function(data){
               $('#servPRO').html(data); // changed servID to data
            },
            error: function(){
                alert('Error occur...!!');
            }
        });
    }
});

【讨论】:

  • 它仍然没有显示我不知道为什么 :( 但它在控制台中读取它
  • 我认为它可能在我的 codeigniter 配置中,它甚至没有读取这个 if(servID == '') { $('#servPRO').attr('disabled', true); } else { $('#servPRO').attr('disabled', false);
猜你喜欢
  • 2019-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 2015-11-06
  • 2018-07-10
  • 2020-11-23
  • 2013-10-19
相关资源
最近更新 更多