当我更改下拉菜单的值(它从db动态显示记录)时,我的$ this-> input->帖子无法正常工作,它不显示任何数据也没有错误,但是它&#39 ;如果我将特定值分配给where语法,则s工作正常。
型号:
public function getData() {
$where = $this->input->post('selected_holcode');
$query = $this->db->get_where("hrms.holiday", "holcode = '$where'")->result();
return $query;
控制器:
public function getHolidaylist() {
$data['record'] = $this->holiday_settings_model->getData();
$this->load->view('maintainance/holiday_settings/holiday_list', $data);
}
ajax(在更改下拉菜单时显示记录)
<script type="text/javascript">
var controller = 'holiday_settings';
var base_url = '<?php echo site_url(); ?>';
function load_data_ajax(type){
$.ajax({
'url' : base_url + '/' + controller + '/getHolidaylist',
'type' : 'POST',
'data' : {'type' : type},
'success' : function(data){
var container = $('#holiday');
if(data){
container.html(data);
}
}
});
}
</script>
查看:
<?php echo form_open('holiday_settings/getHolidaylist') ?>
<div id="holiday"></div>
<?php echo validation_errors(); ?>
<label><strong>Year</strong></label>     <label><strong>:</strong></label>
<select id="syear" onchange="load_data_ajax(1)">
<?php
for ($x=2015; $x>=2008; $x--) {?>
<option><?php echo $x;?></option>
<?php } ?>
</select></br></br>
<select name="selected_holcode" onchange="load_data_ajax(1)">
<option value="SPL">SPL</option>
<option value="LGL">LGL</option>
<option value="CMP">CMP</option>
</select></br></br>
enter code here
答案 0 :(得分:0)
我不确定但是试试这个:
<select name="selected_holcode" onchange="load_data_ajax(this.value)">
而不是:load_data_ajax(1)
或
onchange="load_data_ajax(this.options[this.selectedIndex].value)
如果你的Dropdown充满了来自DB的动态数据
//编辑 如果更改了syear,你想做什么? 既然你调用相同的功能?你应该这样设置:
for ($x=2015; $x>=2008; $x--) {
echo "<option value='$x'>$x</option>";
}
现在你可以像我已经说过的那样获得你的onchange函数的价值
答案 1 :(得分:0)
如果你说静态值使其工作,那么你的控制器和模型功能正常工作我想,也许你应该试试这个:
onchange="load_data_ajax(1)" //instead of writing this
你应该像这样传递值:
onchange="load_data_ajax(this.value)"
或者,当我看到您正在使用JQuery
时,您也可以这样做:
<select name="selected_holcode" class="toggler" > <!-- Remove the onchange event and add a new class to the element -->
<script type="text/javascript">
$(function(){ //on page load
$(".toggler").on("change", function(){
var value_to_send = $(this).val(); //get the selectbox value here
//your ajax call goes here
});
});
</script>