Ajax将数据发布到Codeigniter控制器中,但它显示的是一个空数组,而不是将数据显示到数组列表中

时间:2016-05-24 09:32:47

标签: javascript codeigniter

提交Ajax表单后,帖子值不显示codeigniter控制器返回空数组而不是表单中的数组值

$("#frmDemo").submit(function (e) {
    e.preventDefault();
    var name = $("#name").val();
    var comment = $("#comment").val();
    var marital_status = $('#marital_status').val();

    if (name == "" || comment == "" || marital_status == "") {
        $("#error_message").show().html("All Fields are Required");
    } else {
        $("#error_message").html("").hide();
        $.ajax({
            type: "POST",
            url: "<?= base_url(); ?>index.php/Ajax_Post_Controller/user_data_submit",
            data: "name=" + name + "&comment=" + comment + "&marital_status=" + marital_status,
            success: function (data) {
                $('#success_message').fadeIn().html(data);
                setTimeout(function () {
                    $('#success_message').fadeOut("slow");
                }, 2000);

            }
        });
    }
})

空数组输出:

Array ( 
  [name] => admin@2016comment=somnathmarital_statusjagtap 
  [comment] => 
  [marital_status] => 
) 

1 个答案:

答案 0 :(得分:1)

如果表单包含您需要的所有参数,则可以serialize()表单。

var form_data=$('#frmDemo').serialize();

然后将序列化表单传递给数据:

data:form_data

OR

正如@Juhana所提到的,你可以传递一个对象,然后将其转换为查询字符串:

data:{ name: name, comment: comment, marital_status: marital_status }