【问题标题】:Post array to PHP through ajax通过ajax将数组发布到PHP
【发布时间】:2016-08-06 14:00:26
【问题描述】:

我正在尝试通过 ajax 将数组发布到表单提交时的 php 文件。

<form action="echo.php" method="post">
<input name="qwerty[]" type="text">
<input name="qwerty[]" type="text">
<input type="submit"/>
</form>

基本上,我用它来发布到 php 文件:

function getlist(alt) {
    $.ajax({
    type:'POST',
    url: 'markattlist.php',
    data:{today:alt},
    success: function(data){
    $('#helloflist').html(data);
    },
    error:function (){}
    });
}

上面是我正在尝试做的一个例子。我已经搜索过,但无法找到解决方案。如何通过 ajax 发布数组。

【问题讨论】:

  • 你的问题是什么?
  • 如何以同样的方式通过 ajax 发布数组?

标签: php ajax


【解决方案1】:

您可以使用data:$('#form').serialize()函数序列化表单数据,可以使用ajax发送,也可以使用JSON数据类型发送数组。

var Data = $('#yorFormName').serializeArray();
var JSONData = JSON.stringify(convertToJSON(Data));

 $.ajax({
        url: your_url,
        type: "POST",
        dataType: "json",
        data: JSONData,
        contentType: "application/json; charset=utf-8",
        success: function (response) {

            if (response.status == 'success') {
            // success logic
           } 
        },
        error: function () {
            var errMsg = "Unexpected Server Error! Please Try again later";


        }

    });

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    我建议你使用jquery serialize()方法,而不是烦恼如何发送你需要的东西:

    function getlist(alt) {
        $.ajax({
        type:'POST',
        url: 'markattlist.php',
        data: $("form").serialize(),
        success: function(data){
            $('#helloflist').html(data);
        },
        error:function (){}
        });
    }
    

    并使用

    检查服务器端
    print_r($_POST);
    

    【讨论】:

    • 这看起来不错,但我必须将它插入到 mysql 中。那么如何区分服务器上发布的数据?
    • 与什么区别?
    • 我发布了多个 和多个
    • 我怎么知道qwerty[]和hello[]是哪一个?
    • 我得到了我需要的东西。
    【解决方案3】:
    data: JSON.stringify({d:c}),
    

    将其编码为json并在服务器上解码:

    $data=json_decode($_POST["data"]);
    

    【讨论】:

    • 我不明白。 d:c 是什么?
    • {} 只是一个对象。您还可以在 stringify 函数中放置 [] 一个数组
    • 查看 afshans 的答案以获得更好的 jquery 和 ajax 示例
    • u_mulder 有更好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2011-12-01
    • 2022-06-17
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多