Вернуть несколько значений из PHP в функцию JS (AJAX / SQL)

Я хочу иметь что-то вроде небольшой поисковой системы для раздела часто задаваемых вопросов на моем веб-сайте. Все, что он делает, - это ищет термин в SLQ_DB при нажатии кнопки.

Я хочу вывести вопрос и ответы в двух отдельных блоках. Поэтому у меня есть $ data и $ data1, которые принадлежат div.

$('input#name-submit').on('click',function()
{
    var name = $('input#name').val();
    //alert(name);
    if ($.trim(name) != "")
    {
        $.post('ajax/name.php',{name:name},function(data, data1)
            {
                $('div#name-data').html(data);
                alert(answer);
                $('div#name-data1').html(data1);

            });
    }
});

Но когда я нажимаю Enter, второй div показывает «успех». Но в первом есть data и data1. Когда я записываю функцию (data1, data) в файл js, data1 содержит всю информацию, а данные просто «успешно».

Что тут происходит?

верните строку json из вашего php, а затем проанализируйте эту строку в javascript. Несомненно, на этом сайте есть сотни уже существующих страниц, которые описывают, как это сделать.

mickmackusa 05.11.2018 00:02
Поведение ключевого слова "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) для оценки ваших знаний,...
1
1
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Функция echo в PHP выводит содержимое переменной в тело ответа. Это тело представляет собой «строку», которую получает ваше веб-приложение.

Допустим, у вас есть такой код:

<?php
$var1 = "hello";
$var2 = "world";
echo $var1;
echo $var2;
?>

В результате тело ответа будет выглядеть так: helloworld.

Теперь предположим, что это ваш JS-код:

$.post('ajax/name.php',{name:name},function(data) {
    console.info(data); // "helloworld"
});

jQuery передаст тело ответа переменной данных, которая теперь содержит heloworld.

Вам нужно как-то разделить отдельные переменные внутри тела ответа, например используя JSON.

Первый шаг - закодировать данные на сервере, это очень просто:

<?php
echo json_encode(["var1"=>$var1, "var2"=>$var2]);
?>

В результате будет создано тело ответа следующего вида: {"var1":"hello","var2":"world"}.

Следующим логическим шагом будет декодирование этого JSON с помощью JavaScript:

$.post('ajax/name.php',{name:name},function(data) {
    var res = JSON.parse(data);
    console.info(res.var1); // "hello"
    console.info(res.var2); // "world"
});

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