繁体   English   中英

我如何将下拉值传递给 ajax 控制器?

[英]How i pass the dropdown value to ajax controller?

这是我的下拉框:

在此处输入图片说明

我正在向 ajax 控制器函数发送下拉值以获取一些值。但是该值没有正确传递,我找不到错误;

我的ajax代码:

<script type="text/javascript">
$(function() {
    $('.states').change(function(){
        $id = $('.states').val();        
        $.ajax({
            type    : "POST",
            url     : "<?php echo base_url();?>Reports/Fetch_Item",
            data    :{id:$(this).val()},                        
            success : function (data) {
                alert(data);
                var obj=jQuery.parseJSON(data);
            }           
        });
    });
});

</script> 

我的控制器代码;

public function Fetch_Item(){
    $name = $this->input->post('id');
    $result = $this->db->query("SELECT * FROM acc_master WHERE accName = '$name'")->row();
    echo json_encode($result);
}

前下拉框:

<div id="item3">
Party Name Selection:
<select multiple="multiple" style="width:400px;height:205px;"  name="PName"id="Name" class="form-control states">   
<option value=""></option>
</select> 
<?php echo form_error('Area', '<div class="text-danger">', '</div>'); ?><br><br><br></div>

下拉ajax代码:

<script type="text/javascript">
$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "<?php echo base_url();?>Reports/get_countries1",
        data:{id:$(this).val()}, 
        beforeSend :function(){
        $('.states').find("option:eq(0)").html("Please wait..");
            },                         
        success: function (data) {
    $('.states').find("option:eq(0)").html("");
    var obj=jQuery.parseJSON(data);
    $(obj).each(function()
    {
        var option = $('<option />');
        option.attr('value', this.value).text(this.label);           
        $('.states').append(option);
    });  
}});
});
</script>

你能试试这个吗

<script type="text/javascript">
$(function() {
    $('.states').change(function(){
        var id = this.value;        
        $.ajax({
            type    : "POST",
            url     : "<?php echo base_url();?>Reports/Fetch_Item",
            data    :{'id':id,},                        
            success : function (data) {
                alert(data);
                var obj=jQuery.parseJSON(data);
            }           
        });
    });
});
</script>

$(this).val()返回一个数组,您必须更改后端代码来处理该数组。

像下面这样的东西。

public function Fetch_Item(){
    $name = implode(",", $this->input->post('id'));
    $result = $this->db->query("SELECT * FROM acc_master WHERE accName in ('$name')")->rows();
    echo json_encode($result);
}

注意: Fetch_Item methon sql 将返回多个结果,因此您也必须处理此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM