#javascript #jquery #ajax #raphael
#javascript #jquery #ajax #рафаэль
Вопрос:
пойте Raphel.js и jQuery Ajax Я пытаюсь загрузить несколько точек (кругов) на карте в этом [Demo] [1] У меня есть вызов PHP-файла econo.php что похоже на :
<?PHP
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$query = "SELECT x, y FROM econo WHERE c_5000=1";
$results = $con->query($query);
$return = array();
if($results) {
while($row = $results->fetch_assoc()) {
$return[] = array((float)$row['x'],(float)$row['y']);
}
}
$con->close();
echo json_encode($return);
?>
и возвращает массив X и Y в [здесь][2]
Все в порядке, когда я добавил те же координаты в код (жестко закодированный), например
var coords = [[472.428818,542.403733],[498.605015,549.8196469],[466.124603,560.647791],[474.850002,564.3784961],[478.276206,570.2475322],533.166903,632.3917999]]
но через Ajax с помощью этого метода
$.ajax({
type:"POST",
url:"assets/econo.php",
data:data,
success:function(html) {
coords = html;
console.log(coords);
}
});
Я получаю длинный список ошибок на консоли как:
Error: Invalid value for <circle> attribute cx="[" raphael-min.js:10
Error: Invalid value for <circle> attribute cx="." raphael-min.js:10
Error: Invalid value for <circle> attribute cx="," raphael-min.js:10
Error: Invalid value for <circle> attribute cx="." raphael-min.js:10
Error: Invalid value for <circle> attribute cx="]" .......
Не могли бы вы сообщить мне, что я делаю не так?
Ответ №1:
Вы выводите JSON, но он не анализируется на стороне клиента. Он обрабатывается как необработанная строка. Добавьте a dataType
, чтобы сообщить jQuery проанализировать ответ как JSON. Теперь вы можете предположить, что аргумент, переданный функции успеха, является вашим массивом JavaScript, декодированным из JSON.
$.ajax({
type:"POST",
url:"assets/econo.php",
data:data,
dataType : 'json', // <-- here
success:function(data) {
coords = data;
console.log(coords);
}
});
Комментарии:
1. Спасибо MrCode, теперь он работает, не могли бы вы также сообщить мне, почему я не могу передавать данные из браузера на сервер? Я имею в виду, что причина, по которой я удалил это, заключалась в том, что я не могу запрашивать базу данных на основе выбора пользователя
2. Передача данных на сервер не должна работать без проблем. Проверьте содержимое
data
и добавьте некоторый код в PHP, чтобы собрать его.