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