Передать ассоциативный массив в Javascript с помощью Ajax

Я учусь программированию. Может ли кто-нибудь помочь мне передать этот ассоциативный массив в 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");
    }
}); 

json_encode со стороны php, и вы получите ответ ajax после того, как JSON.parse его.

Devsi Odedra 24.07.2018 12:37
server.php - это беспорядок. Что такое $param = $_POST['param'] и почему он есть в вашем цикле while?
Goodbye StackExchange 24.07.2018 12:38

Вы не записываете данные при получении

AymDev 24.07.2018 12:38

что вы пытаетесь сделать, я не совсем понимаю ваш код?

Jehad Ahmad Jaghoub 24.07.2018 12:38

Почему вы не используете переменную $data?

Zakaria Acharki 24.07.2018 12:47

Вы имеете в виду $ param = $ _POST ['data'];

user9914837 24.07.2018 12:51

Нет, я имею в виду $data = json_encode($row["Lng"].$row["Lat"]. urlencode($row["URL"])."<br>");, вы его создаете, но никогда не используете.

Zakaria Acharki 24.07.2018 12:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
361
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны получить данные обратно со стороны сервера в качестве аргумента успешного обратного вызова:

$.ajax({
    url: 'server.php',
    data: {param: ""},
    success: function(response) 
    {
        console.info( JSON.parse( response ) );
    }
});

ПРИМЕЧАНИЕ 1: Вам действительно стоит расположить код на стороне вашего сервера.

ЗАМЕТКА 2: Если вы используете json_encode() в своем серверном скрипте для отправки формата JSON в качестве ответа, вам необходимо использовать JSON.parse() на стороне клиента для декодирования JSON.

Не волнуйтесь, @kerbholz, отрицатели повсюду, просто игнорируйте их и продолжайте.

Zakaria Acharki 24.07.2018 12:51

Добро пожаловать в мир StackOverflow: D

Zakaria Acharki 24.07.2018 15:59

В вашем 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)

Другие вопросы по теме