好的,我花了很多时间在这上面,我不知道我做错了什么。
似乎无法在PHP文件中获取数据。
$.ajax
方法 - >在PHP $x
,$y
或$time
中或不为空但不为空。
编辑2:
好的 - 用json_last_error()我看到它是我的json “语法错误:格式错误”。但我不知道如何编码它比我更好 这样做。
所以我通过在$ _POST上添加stripslashes()作弊。
[{\ “×\”:104,\ “Y \”:218,\ “时间戳\”:1349476537434},{\ “×\”:90,\ “Y \”:202,\“时间戳\ “:1349476537469},{\” ×\ “:82,\” Y \ “:192,\” 时间戳\ “:1349476537487},{\” ×\ “:71,\” Y \“:177,\ “时间戳\”:1349476537514},{\ “×\”:68,\ “Y \”:174,\ “时间戳\”:1349476537568},{\ “×\”:68,\ “Y \”:173 ,\ “时间戳\”:1349476537801},{\ “×\”:68,\ “Y \”:174,\ “时间戳\”:1349476538478},{\ “×\”:68,\ “Y \” :175,\ “时间戳\”:1349476538512},{\ “×\”:68,\ “Y \”:175,\ “时间戳\”:1349476538579},{\ “×\”:69,\“Y \ “:175,\” 时间戳\“:1349476538678}]
修改1:
发布的数据似乎很好(看下),我完成了 “成功功能”。
[{ “×”:529, “Y”:97 “时间”:1349469608703},{ “×”:385, “Y”:331, “时间”:1349469608720},......]
JS Side - index.php:
<script src="jquery.js"></script>
results = new Array();
function copy(x, y, time) {
var o = { 'x': x, 'y': y, 'time': time };
results.push(o);
}
function save() {
var encoded_results = JSON.stringify(results);
$.ajax({
url: "process.php",
type: 'POST',
data: {
"results" : encoded_results
},
success: function(data, status, xhr) {
alert(data);
console.log(data);
console.log(xhr);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
PHP方面 - process.php:
if(isset($_POST["results"]))
{
$result_json = $_POST["results"];
$JSONArray = json_decode($result_json, true);
if($JSONArray !== null)
{
$x = $JSONArray["x"];
$y = $JSONArray["y"];
$time = $JSONArray["time"]
}
}
答案 0 :(得分:1)
$JSONArray
是关联数组的数组,因此要访问第一个元素f,请使用$JSONArray[0]['x]
,$JSONArray[0]['y']
代替$JSONArray['x']
答案 1 :(得分:1)
在JavaScript端,您发布了一个对象数组 - 一个x / y /时间组合列表。然而,PHP方面忽略了列表和对象部分:
$x = $JSONArray["x"];
VS
$x = $JSONArray[0]->x;
所以整个循环可能是:
foreach($JSONArray as $triple)
{
$x=$triple->x;
$y=$triple->y;
$time=$triple->time;
}
答案 2 :(得分:0)
还设置dataType:attribute
你的ajaxrequest dataType : 'json'
答案 3 :(得分:0)
我刚刚完成了这个,这是我对AJAX的语法:
$.ajax({
type: "GET",
url: "test2.php",
data: { anarray : array1 },
dataType: "json",
success:function(result){
array1 = result;
$.each(array1, function(x, valu){
$('#arraycontent').hide().append(x + " " + valu + "<br>").fadeIn();
})
}
});
PHP文件简单推送2个元素进行演示:
<?php
$testArray = $_REQUEST['anarray'];
array_push($testArray, 'test', 'stuff');
echo json_encode($testArray);
?>