簡體   English   中英

動態依賴於Codeigniter的下拉菜單

[英]Dynamic dependent Dropdown on Codeigniter

我正在使用對Codeigniter使用動態依賴下拉列表的項目。 對不起,我在編碼方面還很陌生。 我有一個表,該表獲取正在運行的服務的ID,但獲取依賴於該服務的另一個表卻無法運行。 我在谷歌瀏覽器中使用了控制台工具,並顯示它獲取了另一個表的選項值,但在瀏覽器中顯示了空白的選擇輸入。

顯示我的數據庫中的選項值

這是我的代碼:控制器:

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>

您在ajax 成功方法上輸入了帶有請求參數的返回變量,但輸入的變量應該是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...!!');
            }
        });
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM