相同的函数运行4次jquery并添加onchange

时间:2016-06-24 04:29:49

标签: php jquery codeigniter

美好的一天,

<script>
$('#selparents option').each(function() {
    var type=$('#selparents').val();
        alert(type);
        $.post('<?php echo base_url();?>index.php/user_controll/show_detail/'+type,{
            type:type
        },
        function(data) 
        {
                $('#result').html(data);
        }); 
});
</script>

上面是我简单的jquery。

好的,我想做的是。当页面被执行时,将进行会话。

    public function show_detail($type)
        {
                extract(populateform());
                $this->session->set_userdata(array('tipe_pilihan' => $type));
                /////////

但是当页面未被executed时,会话必须为空。需要改变。我如何添加onchange因为我的脚本只能在上面运行,如果已经从会话设置了值。

<select id="selparents" class="form-control select2" name="parent">
                                 <option value="0">None</option>
                                    <?php
                $s = "";
            $type_pilihan = $this->session->userdata('tipe_pilihan');
                                        foreach($tipe as $hslnya)
                                        {   if($type_pilihan == $hslnya->id_tipe)
                                            {
                                echo "<option selected value='".$hslnya->id_tipe."'>".$hslnya->deskripsi."</option>";
                                                }else{
                                                    echo "<option value='".$hslnya->id_tipe."'>".$hslnya->deskripsi."</option>";
                                                }
                                        }
                                    ?>
                                </select>
抱歉我的英语不好。

感谢@Barmar我的loop alert已修复。但是,与我的older script不同,当选择框已从会话中选择某个选项时,警报不会显示(重新加载时)。

1 个答案:

答案 0 :(得分:1)

我不完全确定你在问什么,但我认为这可能是你在寻找的东西:

$("#selparents").change(function() {
    var type = $(this).val();
    $.post('<?php echo base_url();?>index.php/user_controll/show_detail/'+type,{
        type:type
    },
    function(data) 
    {
            $('#result').html(data);
    }); 
});        

您的代码在加载页面时重复执行AJAX调用,而不是在用户从菜单中选择时。