美好的一天,

<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当选择框已经从会话中选择了某个选项时,警报不会显示(重新加载时)。

最佳答案

我不确定您要问的是什么,但我认为这可能是您要寻找的:

$("#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调用,而不是在用户从菜单中进行选择时执行。

10-06 07:55