PHP: Как я могу вернуть данные в ответ на запрос $ .post? - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать простую функцию публикации с помощью jQuery. Ввод - это имя клиента, а ответ - это информация (адрес, телефон, возраст и т. Д.). До сих пор у меня есть это:

Сценарий:

$(document).ready(function(){
    $("#getClientInfo").on('click', function(){
        $.post("getClientInfo.php", {
            name: $('#name').val()
        }) .done(function(data){
            console.log(data);
        }) .fail(function(xhr){
            errorShow(xhr.responseText);
        })
    });

PHP:

$connection = include('dbConnection.php');
$name = $_POST['name'];
$query = mysqli_query($connection, "SELECT * FROM clients WHERE name = 
    $name");
$result = mysqli_fetch_array($query);
return $result;

Я знаю, что это действительно просто и не реализует исключения или предотвращает SQL-инъекции, но сейчас я хотел бы только напечатать полученный массив в консоли с помощью функции .done (). Тем не менее, он не возвращает ответа.

Есть идеи? заранее спасибо.

Редактировать: Я хочу, чтобы массив был ответом на запрос, поэтому он отображается здесь в Chrome:

Изображение

1 Ответ

0 голосов
/ 28 июня 2018

Вы не получаете никакого вывода из вашего PHP-файла, потому что в вашем скрипте нет строк, производящих вывод.

со страницы руководства return :

Если вызывается из глобальной области видимости, выполнение текущего файла сценария заканчивается. Если текущий файл сценария был включен или необходим, управление передается обратно в вызывающий файл. Кроме того, если текущий файл сценария был включен, то значение, данное для возврата, будет возвращено как значение вызова include.

То есть return не производит вывод, но присваивает значение тому, что вызывает функцию:

function getSomething() {
    return 'something';
}
$something = getSomething();

или назначит значение тому, что включает в себя другой файл.

index.php:

<?php
$value = include('otherpage.php');
// $value == 'hello'

otherpage.php:

<?php
return 'hello';

Вместо этого вам нужно сделать что-то вроде:

echo json_encode($result);
...