Php 在ajax post中发送json字符串

Php 在ajax post中发送json字符串,php,jquery,json,Php,Jquery,Json,当我试图在php中解码数据时,错误是未定义索引myData..请帮助我..谢谢。使用数据类型:json发送json。尝试一下: var myData = JSON.stringify($('form').serializeArray()); $.ajax({ cache: false, url: "http://localhost/Demo/store.php", type: "POST", data: myData, compl

当我试图在php中解码数据时,错误是未定义索引myData..请帮助我..谢谢。

使用
数据类型:json发送json。

尝试一下:

var myData = JSON.stringify($('form').serializeArray());

$.ajax({ 
    cache: false,
    url: "http://localhost/Demo/store.php",
    type: "POST",
    data: myData,           
    complete: function (xhr, status) {
        if (status === 'error' || !xhr.responseText) {
            alert(status);              
        }
        else {
            var r = xhr.responseText;                       
        }
    }
});

$decoded = json_decode($_REQUEST['myData'],true);
print_r($_REQUEST);
exit;

if (is_array($decoded))
{
    foreach ($decoded as $value) {
        echo $value["name"] . "=" . $value["value"];
    }
}

在调用ajax时尝试此方法

$decoded = json_decode($_POST['myData'],true);
然后使用

data: {'myData' : myData},


当您传递字符串作为
数据时,
属性只是将其作为参数查询字符串附加到URL。如果要发送编码的JSON字符串,仍需为其命名:

json_decode($_REQUEST['myData'],true);

现在,您可以在PHP脚本中使用
myData
请求参数。

尝试以下传递数据类型:

data: {myData: myData}

我是否使用正确的格式发送json字符串。。??在控制台日志中,它显示如下json字符串:[{“名称”:“名称”,“值”:“xyz”},{“名称”:“年龄”,“值”:“22”},{“名称”:“性别”,“值”:“男性”},{“名称”:“技能”,“值”:“Php”},{“名称”:“技能”,“值”:“Java”},{“名称”:“注意”,“值”:“sadasd”}]请使用其他信息编辑您的原始帖子,而不是将其作为注释发布。为什么要使用JSON.stringify值,请尝试使用:var myData=$('form')。serializeArray();可能重复的
dataType
是您希望从服务器返回的数据类型。我不希望得到数据,但我更希望得到一个解释,说明有人认为我的答案不正确。但是在json_decode中,它的错误显示为json_decode()期望参数1为string,即使我声明了一个对象并试图起诉它,但你的答案更容易解决这个问题。。var param=新对象();param['myData']=myData;当我尝试解码json字符串时,会显示错误,因为json_decode()希望参数1为字符串
data: {myData: myData}
$.ajax({
    url: 'http://localhost/Demo/store.php',
    type: 'POST',
    dataType: 'json',
    data: $('#form').serialize(),
    success: function(xhr, status) {
    if (status === 'error' || !xhr.responseText) {
        alert(status);              
    }
    else {
        var r = xhr.responseText;                       
    }
}
});