我将一组JSON对象发送到数据库中。它们保存为:
function send_custom_markers() {
var reponse = confirm("Send markers to selected contacts?");
if (reponse === true)
{
var json_markers = new Array();
for (var i = 0; i < myCustomMarkers.length; i++) {
json_markers.push({
title: myCustomMarkers[i].getTitle(),
lat: myCustomMarkers[i].getPosition().lat(),
lng: myCustomMarkers[i].getPosition().lng(),
img: myCustomMarkers[i].getIcon(),
});
}
json_markers = JSON.stringify(json_markers);
$.ajax({
type: 'post',
url: 'dist/backend/action_controller.php',
data: {action: "send_custom_markers", userID: userID, data: json_markers},
success: function() {
alert("Markers Sent");
}
});
}
}
我知道这部分有效,因为在数据库中它们看起来像这样:
[{"title":"Marker: 1","lat":37.6637114...
现在我需要全力以赴。
Php代码:
$result = $this->query($sql);
$friends_markers = array();
while ($row = $result->fetch_array()) {
$friends_markers[] = json_encode($row, true);
//Something needs to go here.
}
echo $friends_markers;
和JavaScript代码:
function get_friends_custom_markers(userID) {
$.ajax({
type: 'post',
url: 'dist/backend/action_controller.php',
dataType: 'json',
data: {action: "get_friends_custom_markers", userID: userID},
success: function(friends_markers) {
alert(friends_markers[0][0].title);
},
error: function(xhr, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
我把警报放在那里只是为了测试出来的情况。
我的逻辑是,对于每个用户,他们都保存了一组JSON对象。 为了全力以赴,我需要一个数组,其中每个元素都是一个JSON对象数组。 所以,如果我这样做:
alert(friends_markers[0][0].title);
输出应为:
"Marker: 1"
但我得到了
200
parsererror
我知道一切正常,直到$结果。我知道问题在于php函数中的while循环。我尝试了许多不同的东西但没有效果。这花了我几天。我是php和JavaScript的新手。这是我正在进行的项目的最后一部分。一旦我将所有数据放入数组中,我就可以将它们全部绘制到Google地图上。所以任何事都会有所帮助。谢谢。
答案 0 :(得分:1)
您应该能够通过在success()回调中将friends_markers转储到浏览器的调试控制台console.log(friends_markers)
,更好地了解您的ajax调用回来的内容。所有当前的浏览器都随控制台一起提供,但每个浏览器都有所不同。