【问题标题】:Sending an array of objects to PHP function with jQuery.ajax request使用 jQuery.ajax 请求将对象数组发送到 PHP 函数
【发布时间】:2013-12-25 13:41:20
【问题描述】:

有一个这样的对象数组:

rectangle[0].width = w; 
rectangle[0].height = h;
rectangle[1].width = w;
rectangle[2].height = h;
rectangle[3].width = w;
rectangle[3].height = h;
...

我们如何通过 jQuery.ajax 请求将此数组发送到 PHP 函数,反之亦然,从 PHP 函数修改数组作为响应? 我介意JS代码可能是:

request = $.ajax({
                type     : "POST",
                url      : "post.php",
                data     : {rec :rectangle}
            });
request.done(function(msg) { 
    alert(msg);
});
request.fail(function(jqXHR, textStatus) {
        alert("Function inaccessible: " + textStatus)
});

和 PHP:

if (isset($_POST["rec"]) {
    $rec = $_POST["rec"];
    $arr_length = count($rec);
    $response = $arr_length;
} 

echo $response;

请展示请求的真实形式。谢谢。

【问题讨论】:

  • 你卡在哪里了?检查任何关于如何使用 ajax 发送数据的教程...
  • 建设性评论!第一次询问并立即打卡:(

标签: javascript php jquery ajax arrays


【解决方案1】:

很简单:

<script>

var myarray = new Array();

var params = { myarray: myarray };

var paramJSON = JSON.stringify(params);

$.post(
   'test.php',
    { data: paramJSON },
    function(data) {
        var result = JSON.parse(data);
    }

</script>

php side:

if(isset($_POST["data"]))
{
    $data = json_decode($_POST["data"]);
    $myarray = $data->myarray;
    foreach($myarray as $singular)
    {
        // do something
    }
}

【讨论】:

  • 我使用了 $.ajax 的缩写形式,即 $.post.. 我喜欢它,因为它更简单,而且通常不需要更多功能……通常!
  • JSON.stringify() 是 JavaScript 函数吗?
  • 谢谢你,奥马尔·阿里!你告诉我,在转换为 JSON 之前,该数组将被放置到对象中。
  • 不用担心..如果您需要其他任何东西,请告诉我! :) 是的,JSON.stringify() 是一个 javascript 函数,我不想成为一个刺客,但你可以很容易地用谷歌搜索 :) developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 但这是演示如何发布包含数组的对象,而不是如何发布包含对象的数组。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多