输入帖子没有工作onchange事件CodeIgniter

时间:2014-05-09 09:04:27

标签: php jquery codeigniter

当我更改下拉菜单的值(它从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>&emsp;&emsp;&emsp;&emsp;&nbsp;<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

2 个答案:

答案 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>