我发现从php文件访问数组中的元素很困难。该数组通过ajax调用传递。请在下面找到ajax电话。
var data = ['test1', 'test2', 'test3'];
$(document).ready(function () {
$("button").click(function () {
$.ajax({
type: "POST",
url: "getResult.php",
data: {
testData: data
},
success: function (data, status) {
alert("Data: " + data + "\nStatus: " + status);
}
});
return false;
});
});
服务器端[PHP]代码是
$myArray = $_POST["testData"];
echo $myArray;
然而,$ myArray总是返回数组中的最后一个元素[test3 here]。我如何首先访问[here test1]和其他元素? 请帮助。
答案 0 :(得分:0)
JS:
JSON.stringify(data)
PHP:
$myArray = json_decode($_POST['data']);
答案 1 :(得分:0)
您需要做的是将JavaScript数组转换为JSON,然后通过该JSON发送。 在PHP方面,您应该将JSON解码回数组。最后,您应该在将数组重新编码为JSON之后再将其发送回来。
在您的客户端更改一行:
data: {testData : JSON.stringify(data)},
在服务器端执行:
$myArray = json_decode($_POST["testData"]);
header('Content-Type: application/json');
echo json_encode(array('pheeds' => $pheeds, 'res' => $res));
答案 2 :(得分:0)
对于简单结构,您可以使用jQuery Param
data : $.param({testData:data})
有了这个,您应该可以使用
访问您的数据echo $_POST["testData"][0]...[2];
答案 3 :(得分:0)
通过ajax传递JS变种时尝试这个。
使用Firebug在控制台上查看正在装入PHP文件的内容,这将为您节省很多麻烦。
您将看到该数组是一个OBJECT,因此您希望将此数组作为JSON / STRING发送到PHP文件。
使用:
var data = ['test1','test2','test3'];
data = JSON.stringfy(data);
在PHP:
$data = var_post('test_data');
$data=json_decode($data);
$print_r($data);