簡體   English   中英

PHP Codeigniter-使用Ajax獲取默認值

[英]php codeigniter - get back the default value using ajax

我正在開發一個模塊,其中有兩個下拉菜單可供用戶選擇,第二個下拉菜單的值將基於第一個下拉列表自動填充,並用於從db中獲取值(我正在使用AJAX)。

最初在頁面加載時,在第二個下拉列表的位置(在id="model_inner_list"的span標記內)將出現一個處於只讀模式的文本框,當第一個下拉值為0時就是這種情況。

當第一個下拉菜單的值更改id="model_inner_list" 0時,span tag id="model_inner_list"文本框將被第二個下拉菜單替換(由db中的值填充)

現在的問題是,當我將第一個下拉值改回0時,第二個span標記中的id="model_inner_list"下拉列表沒有被默認文本框替換。 例如,當第一個下拉菜單的值為0時,第二個下拉菜單應替換為默認文本框。 以下是我正在嘗試的代碼級別詳細信息

下拉菜單

在此處輸入圖片說明

下拉菜單中的HTML版本(包含在View文件中)

 <div class="form-group input-group barnch_emp"> <span class="input-group-addon mylable">Make</span> <select name="bv_vech_name_id" id="bv_vech_name_id" required="" class="form-control user-success" onchange="javascript:get_model_list(this.value)"> <option value="0">Select Vehicle Make</option> <option value="1">HERO</option> <option value="2">TVS</option> <option value="3">SUZUKI</option> <option value="4">BAJAJ</option> <option value="5">HONDA</option> <option value="6">YAMAHA</option> <option value="7">MAHINDRA</option> <option value="8">ROYAL ENFIELD</option> </select> </div> <div class="form-group input-group barnch_emp"> <span class="input-group-addon mylable">Model</span> <span id="model_inner_list"> <input type="text" class="form-control" value="Please Select Make" readonly=""> </span> </div> 

我正在使用以下javascript函數使用AJAX調用php函數

 function get_model_list(vm_vechile_id) { document.getElementById('model_inner_list').innerHTML = '<img src="<?php echo base_url();?>assest/img/loader_small.gif"/>'; var url = '<?php echo base_url();?>index.php/order/get_model_list_ajax?vm_vechile_id=' + vm_vechile_id; $.post(url, function(result) { document.getElementById('model_inner_list').innerHTML = result; }); } 

AJAX調用的控制器功能

function get_model_list_ajax($vm_vechile_id = "", $ba_city = "") {
    if ($vm_vechile_id == '0') {
        echo '<input type="text" class="form-control" value="Please Select Make" readonly>';
    } else {
        $this->load->model('Order_model');

        if (!isset($_REQUEST['vm_vechile_id']))
            $_REQUEST['vm_vechile_id'] = $vm_vechile_id;
        if (!isset($_REQUEST['ba_city']))
            $_REQUEST['ba_city'] = "";
        $result = $this->Order_model->get_option_list_state('vechile_model', 'vm_vechile_id', $_REQUEST['vm_vechile_id']);
        $cat1[''] = 'Select Model';
        if ($result) {
            foreach ($result as $item) {
                $cat1[$item->vm_id] = $item->vm_model_name;
            }
        }
        if ($vm_vechile_id)
            return form_dropdown('bv_vech_model_id', $cat1, $ba_city, 'id="bv_vech_model_id"   class="form-control"');
        else
            echo form_dropdown('bv_vech_model_id', $cat1, $_REQUEST['ba_city'], 'id="bv_vech_model_id"    class="form-control"');
    }
}`

上面的控制器調用的模型函數

public function get_option_list_state($table_name = "", $field_name = "", $id = "") {
    $res = array();
    if ($id)
        $this->db->where($field_name, $id);
    $q = $this->db->get($table_name);
    if ($q->num_rows() > 0) {
        foreach (($q->result()) as $row) {
            $data[] = $row;
        }
        return $data;
    }
}

您可以像這樣更改get_model_list函數:

function get_model_list(vm_vechile_id) {
  if ( vm_vechile_id > 0 ) {
      //ajax request goes here
  }
  else {
    document.getElementById('model_inner_list').innerHTML = '<input type="text" class="form-control" value="Please Select Make" readonly="">';
  }
}

暫無
暫無

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

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