[英]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.