Я только начинаю изучать JSON, где учебник с другого сайта использует этот код (который я уже измененный, чтобы упростить это):
$(document).ready(function(){
$('#getdata-button').click(function(){
$.ajax({
type: "GET",
url: "json-data.php",
dataType: "json",
success: function(){
alert('a');
$('#showdata').html(
"<p>item1="+data.item1+
" item2="+data.item2+
" item3="+data.item3+"</p>"
);
}
});
});
});
И это код JSON-data.php
<?php
$item1 = "candy";
$item2 = "chocolate";
$item3 = "ice cream";
//return in JSON format
echo "{";
echo "item1: ", json_encode($item1), "\n";
echo "item2: ", json_encode($item2), "\n";
echo "item3: ", json_encode($item3), "\n";
echo "}";
?>
проблема заключается в том, что функция предупреждения (для отладки) не отвечает после того, как я нажал на кнопку (с идентификатором «GetData кнопки»). Firebug говорит, что запрос успешно, и я вижу данные оттуда. Ошибка не обнаружена. Просто функция обратного вызова не выполняется, но почему?
Ваш JSON недействителен. Ключи и строковые значения должны быть заключены в двойные кавычки, а 'json_encode()' не предназначен для использования INSIDE json string, он предназначен для вывода полной строки JSON. –
Gah! Не делай этого! Вы должны создать массив в PHP, а затем просто сделать 'echo json_encode ($ array)' – Bojangles
Я нахожу http://jsonlint.com очень полезным. Вы также должны воспользоваться обратным вызовом «ошибка» ajax. Также http://www.json.org хорош для теории и синтаксиса. – dgig