Не получать данные взамен с помощью AJAX

Это данные, которые я пытаюсь получить

public function dohvatiZadatak($id){
    $this->id = $id;
    $conn = $this->connect()->prepare("SELECT * FROM zadatci WHERE id=:id");
    $conn->bindParam('id', $this->id);
    $conn->execute();
    $zadatak = $conn->fetch(PDO::FETCH_ASSOC);
    return json_encode(array('zadatak' => $zadatak));
}

Запрос Ajax

function urediZadatak(id){
      $("#uredi-zadatak-modal").modal('show');
      $.ajax({
         type: "GET",
         url: "../zadatci/uredizadatak.php?id = "+id,
         data: id,
         async: false,
         success: function(response){
             console.info(response.zadatak);
         }
       });
 }

Я ничего не получаю взамен. Как мне получить данные, которые я возвращаю с помощью PHP?

Помимо проблемы, удалите async: false. Это ужасная практика до такой степени, что браузер выдаст вам предупреждение в консоли, говорящее вам не делать этого. Сам ваш код выглядит нормально. Я бы посоветовал проверить вкладку сети консоли после того, как вы сделаете запрос, чтобы проверить ответ - я бы предположил, что у вас есть проблема на стороне сервера где-то в PHP.

Rory McCrossan 19.06.2018 21:26

Какой является сервер вернул? Пустой ответ? Ошибка? Есть ли ошибка JavaScript в консоли отладки браузера? Что-нибудь в журналах ошибок PHP? Вам нужно сделать небольшую отладку. Боковое примечание: async: false не следует использовать, и браузеры, скорее всего, полностью перестанут его поддерживать.

David 19.06.2018 21:27

Вы куда-нибудь звоните echo dohvatiZadatak($id);?

Pedro Henrique 19.06.2018 21:40

@RoryMcCrossan, спасибо, но когда я удаляю эту строку, ничего не меняется.

V. Alen 19.06.2018 21:43

@David На вкладке сети я получаю пустой ответ

V. Alen 19.06.2018 21:44

@PedroHenrique ммм нет

V. Alen 19.06.2018 21:45

Поэтому, когда функция вызывается, я появляется на вкладке сети, а вкладки предварительного просмотра / ответа пусты.

V. Alen 19.06.2018 21:46

@ V.Alen: Пустой ответ часто указывает на ошибку в PHP. Включите отчеты об ошибках, проверьте журналы ошибок PHP и т. д. Кроме того, стоит изучить, почему именно вы ожидаете содержимого ответа. Ваш PHP-код показывает функцию, но вызывает ли что-нибудь эту функцию? Как вы подтвердили, что функция вообще вызывается?

David 19.06.2018 21:47

@David да, у меня есть файл uredizadatak.php, который вызывает эту функцию dohvatiZadatak с переданным идентификатором

V. Alen 19.06.2018 21:49

Если переключить 'return' с 'print_r', я получаю правильные данные на вкладке ответа, но их нельзя использовать, если я сделаю это с print_r, верно?

V. Alen 19.06.2018 21:50

@ V.Alen: Когда вы вызываете эту функцию, что вы делаете с результатом? Вы повторяете это на выходе?

David 19.06.2018 21:54

@ Дэвид У меня есть это в файле urediZadatak.php. если (isset ($ _ GET ['id'])) {$ id = $ _GET ['id']; $ zadatak = новый задатак (); $ zadatak-> dohvatiZadatak ($ ​​id); } Так что я пока ничего не догадываюсь.

V. Alen 19.06.2018 21:57
Поведение ключевого слова "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
12
39
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Чтобы ответ был отправлен обратно из PHP, вам необходимо использовать echo. В вашем коде вы должны добавить следующее в место, вызывающее dohvatiZadatak($id):

echo dohvatiZadatak($id);

И чем в вашем интерфейсе вы можете использовать:

function urediZadatak(id){
    $("#uredi-zadatak-modal").modal('show');
    $.ajax({
        type: "GET",
        url: "../zadatci/uredizadatak.php?id = "+id,
        data: id,
        async: false,
        success: function(response){
            var parsedResponse = JSON.parse(response);
            // use the response as parsedResponse.key
        }
    });
 }

Это работает, спасибо и спасибо за то, что сэкономили мне время на поиски того, как на самом деле получить доступ к этим данным.

V. Alen 19.06.2018 22:03

Основываясь на ветке комментариев выше ...

Ваша функция возвращает результат:

return json_encode(array('zadatak' => $zadatak));

Но вы не выводите этот результат на вывод:

$zadatak->dohvatiZadatak($id);

Все, что вам нужно сделать, это распечатать его на выходе:

echo $zadatak->dohvatiZadatak($id);

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