使用对象发送数组将ajax抛出到php

时间:2017-11-11 13:28:09

标签: php json ajax

请帮帮我: 我创建了我的对象:

var data = [];

$("#report-container [id^='report-']").each(function(index) {
    var reportObject = {
        "subject" : "",
        "photo" : "",
        "rating" : "",
        "comment" : ""
    };
    reportObject.subject = $("#name-report-"+index).text();
    reportObject.photo = $("input[name='subject-photo-"+index+"']")[0].files[0];
    reportObject.rating = $("input[name='subject-rating-"+index+"']").val();
    reportObject.comment = $("textarea[name='subject-comment-"+index+"']").val();
    data.push(reportObject);
});

在此之后我有一个数组。我将它转换为json:

var myarray = JSON.stringify(data);

如果我登录它,它看起来像这样:

[{"subject":"Окна","rating":"0","comment":""},{"subject":"Пол","rating":"0","comment":""}]

然后我把它发送到php:

$.ajax({
    type: "POST",
    url: "/report-data/add_report.php",
    data: { data: myarray },
    async: true,
    cache: false,

在php中我尝试这样做:

$data = json_decode($_POST["data"]);
echo(json_encode("this".$data));

它不起作用......

1 个答案:

答案 0 :(得分:1)

如果您尝试此代码,您会发现您的php变量$ data是一个数组()

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

然后在你的后续行中

echo(json_encode("this".$data));

哪个导致错误beacuase你不能连接字符串与数组"this".$data所以尝试这个简单的更改。

echo("this".json_encode($data));

因为json_encode($data)返回一个字符串,所以你可以将它与&#34连接;这个"这是字符串