我的情况是这样的。 我有两个下拉选项:Building和Floor。我想要的是,当我更改/点击下拉菜单#34; Building"的值时,它会填满它的楼层数。例如,下拉"建筑"有两个选项,比如说,building1有10层,building2有5层。因此,当我选择building1时,它将在下拉列表中提供10个选项" Floor"。当我将它更改为building2时,它将再次填满下拉列表" floor"只有5个选项代表该建筑的楼层数。
所以这是我的代码: 查看:
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="H3">Add New Room</h4>
</div>
<div class="modal-body">
<form role="form">
<div class="form-group">
<label>Building</label>
<select class="form-control" name="rt" id="bldg" onchange="activate_floor();">
<option>Select Bldg. No</option>
<?php
if ($bldg_list) {
foreach ($bldg_list as $row) {
echo "<option value=\"" . $row -> buid . "\">" . $row -> budesc . "</option>";
}
}
?>
</select>
<label>Floor</label>
<select class="form-control" name="flr" id="flr">
<option>Select Floor. No</option>
<?php
if ($flr_list) {
$str = 1;
foreach ($flr_list as $row) {
while($str <= $row -> flr ){
echo "<option value=\"" . $str . "\">" . $str . "</option>";
$str++;
}
}
}
?>
</select>
<label>Room</label>
<input class="form-control" placeholder="Enter Room No." required="required" id="rno" name="rno" />
<label>Room Type</label>
<select class="form-control" name="rt" id="rt">
<option>Select Room Type</option>
<?php
if ($roomtype_list) {
foreach ($roomtype_list as $row) {
echo "<option value=\"" . $row -> rtcode . "\">" . $row -> rtdesc . "</option>";
}
}
?>
</select>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
Close
</button>
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!--END MODAL WINDOW -->
如您所见,我在事件ONCHANGE上为下拉列表BUILDING分配了一个函数ACTIVATE_FLOOR()。
这是我在页脚放置的AJAX部分。
<script>
$(document).ready(function() {
$('select#flr').attr('disabled',true);
});
function activate_floor(){
var bldg_id = $('select#bldg').val();
$.ajax({
type: 'POST',
url: '<?php echo base_url('csettings/display_room/' )?>',
data: 'buid='+bldg_id,
success: function() {
$('select#flr').attr('disabled',false);
console.log(response);
}
});
}
</script>
这是我的 CONTROLLER :
public function display_room(){
$buid = $this -> security -> xss_clean($this -> input -> post('buid'));
$data['room_list'] = $this -> msettings -> get_room();
$data['roomtype_list'] = $this -> msettings -> get_roomtype();
$data['bldg_list'] = $this -> msettings -> get_bldg();
$data['flr_list'] = $this -> msettings -> get_flr($buid);
$this -> display_view('vroom',$data);
}
当我使用Chromes Developer Tool进行调试时,我发现了下拉列表的ID&#34; Building&#34;正确地在URL中传递,如下所示。
但我现在的问题是,我的CONTROLLER中没有检索到这个值。
答案 0 :(得分:0)
非常感谢您的回复。请查看我在控制台日志中截取的屏幕截图。正如我所注意到的,请求查询字符串不会添加下拉列表的ID,尽管响应会给出状态200。
答案 1 :(得分:0)
尝试在控制器中使用
$这 - &GT;输入 - &GT; get_post(&#39;打造专业化&#39)
而不是
$这 - &GT;输入 - &GT;柱(&#39;打造专业化&#39)
似乎该参数作为查询字符串传递。