Я использую: echo json_encode ($ Response); отправить ассоциативный массив обратно в JQuery Ajax. Всякий раз, когда я пытаюсь прочитать каждое значение ключа ID, я получаю неопределенное значение. Пожалуйста, помогите мне выяснить, что я делаю так неправильно … Спасибо заранее
Мой PHP-код:
$Stuff = 'Hello world'; $Success = true; $Content = $Stuff; $Response = array('Success' => $Success, 'Content' => $Content); echo json_encode($Response);
# #
Мой код JS:
var sFirstName = $('#student_first_name').attr('value'); $.ajax({ type: "GET", url: "../pgs/UpdateEditAStudent.php", data: "FirstName="+ sFirstName , //The below code will give me: {"Success":true,"Content":"Hello world"} success: function(data){$("#Ajax_response").html(data);} //The popup window will show me "Undefined" //and: {"Success":true,"Content":"Hello world"} success: function(data){$("#Ajax_response").html(data); alert(data.Content);} });
Вы также должны установить тип mime, который, согласно этому вопросу, является application/json
. Тогда jQuery поймет, что ответ – это элемент json. Для этого вы должны сделать следующее:
header('Content-Type: application/json');
В своем UpdateEditAStudent.php
перед печатью ничего.
Вам не нужно добавлять заголовок в файл PHP, просто используйте эту функцию Jseery parseJSON :
Сохраните этот код PHP так:
$Stuff = 'Hello world'; $Success = true; $Content = $Stuff; $Response = array('Success' => $Success, 'Content' => $Content); echo json_encode($Response);
И для JS:
$.ajax({ type: "GET", url: "../pgs/UpdateEditAStudent.php", data: "FirstName="+ $('#student_first_name').val(), success: function(data){ // Here is the tip var data = $.parseJSON(data); alert(data.Content); } });
Вам необходимо определить правильный dataType
или предоставить правильный заголовок, как описано в Lumbendil.
Вы можете вручную определить dataType
для json
, поэтому ваш код будет выглядеть так:
$.ajax({ type: "GET", url: "../pgs/UpdateEditAStudent.php", data: "FirstName="+ sFirstName , dataType: "json", ...etc
Это массив. Вероятно, вы должны сделать предупреждение (данные ['Content']) ;.
сделать что-то подобное
$Stuff = 'Hello world'; $Success = true; $Content = $Stuff; $Response = array('Success' => $Success, 'Content' => $Content); echo json_encode($Response);