JQuery JSON эхо - PullRequest
       3

JQuery JSON эхо

0 голосов
/ 24 августа 2011

EDIT Решил это. Это было до вызова ajax и, следовательно, этот код. Спасибо всем за ответы.


Я не могу найти никого с этой проблемой. У меня AJAX-вызов PHP-скрипта, который возвращает JSON-ответ.

Я получаю значения из базы данных в массив:

while($row = mysql_fetch_array($ret)){ 
    $temp = array(
     'id' => $row['id_reserva'], 
     'start' => $row['data_inicio'], 
     'end' => $row['data_fim'], 
     'title' => $row['descricao']
    );

    $js[] = $temp;
 }

Заголовки:

 header('Content-type: application/json');

И эхо:

 echo json_encode($js);

Нет никакого возврата, просто нулевая строка. Что меня действительно беспокоит, так это то, что если вместо этого я создаю строку json с предыдущим результатом прямо в коде:

$temp = '[{"id":"3914", "start": "2011-08-25 09:00:00", 
"end":"2011-08-25 18:00:00", "title":"asdasdasd"},
{"id":"3915", "start": "2011-08-25 09:00:00", 
"end":"2011-08-25 18:00:00", "title":"asdasdasd"}]';

echo $temp;

Это работает. Попытался изменить кодификацию файла, сравнить строки, проверить наличие проблем с символами и ничего.

Кто-нибудь?

Приветствия

Ответы [ 5 ]

2 голосов
/ 24 августа 2011

Вы должны закодировать это.попробуйте

echo json_encode($js);
1 голос
/ 24 августа 2011

Вы не выводите как JSON?

echo json_encode($js);

С вашим методом, когда jQuery получает ответ и не может проанализировать JSON, он вернет пустую строку, как вы уже видели.

1 голос
/ 24 августа 2011

Вам нужно json кодировать массив:

echo json_encode($js);
0 голосов
/ 24 августа 2011

Вы не создаете многомерный массив с $js[] = $temp;, а затем кодируете его? Попробуйте просто сделать json_encode($temp);

0 голосов
/ 24 августа 2011

Процесс устранения ..

  • вы можете напечатать_r ($ js) и получить вывод?
  • Вынуть заголовок (); Скажите, что-нибудь появляется?
  • У вас включены error_reporting и display_errors?
  • Вы, похоже, не инициализируете 'js' ($ js = array ()). Если вы вернете буквальную строку 'null', это может означать, что ваш запрос не возвращает никаких результатов.

Я мог бы добавить это утверждение почти к каждому длинному запросу PHP при переполнении стека:

Просмотрите ваш код шаг за шагом и проследите, что вы ожидаете, что содержимое переменных будет в этой точке. Тогда вы будете медленно изолировать, где именно ваша проблема; нет ничего плохого в вашем коде как есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...