Я учусь программированию. Может ли кто-нибудь помочь мне передать этот ассоциативный массив в JavaScript с помощью AJAX?
server.php
$sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$data = json_encode($row["Lng"].$row["Lat"]. urlencode($row["URL"])."<br>");
$param = $_POST['param'];
$param = json_decode($param);
}
} else {
echo "0 results";
}
$conn->close();
Index.js
$.ajax({
url: 'server.php',
data: {param: ""},
success: function()
{
console.info("Testing");
}
});
server.php - это беспорядок. Что такое $param = $_POST['param'] и почему он есть в вашем цикле while?
Вы не записываете данные при получении
что вы пытаетесь сделать, я не совсем понимаю ваш код?
Почему вы не используете переменную $data?
Вы имеете в виду $ param = $ _POST ['data'];
Нет, я имею в виду $data = json_encode($row["Lng"].$row["Lat"]. urlencode($row["URL"])."<br>");, вы его создаете, но никогда не используете.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны получить данные обратно со стороны сервера в качестве аргумента успешного обратного вызова:
$.ajax({
url: 'server.php',
data: {param: ""},
success: function(response)
{
console.info( JSON.parse( response ) );
}
});
ПРИМЕЧАНИЕ 1: Вам действительно стоит расположить код на стороне вашего сервера.
ЗАМЕТКА 2: Если вы используете json_encode() в своем серверном скрипте для отправки формата JSON в качестве ответа, вам необходимо использовать JSON.parse() на стороне клиента для декодирования JSON.
Не волнуйтесь, @kerbholz, отрицатели повсюду, просто игнорируйте их и продолжайте.
Добро пожаловать в мир StackOverflow: D
В вашем server.php вам нужно json_encode, а не декодировать:
$response = array("coordinates" => array());
$sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$response["coordinates"][] = $row;
}
}
echo json_encode($response);
$conn->close();
И запрос (index.js) вроде:
$.ajax({
dataType: "json",
url: 'server.php',
data: [],
success: function(response){console.info(response);}
});
Вы должны ответить JSON, иначе это не сработает. Это должно быть так просто, как:
echo json_encode($array)
json_encode со стороны php, и вы получите ответ ajax после того, как JSON.parse его.