2013-05-29 7 views
0

Проблема в том, что предупреждающее сообщение «TEST» не появляется, хотя функция getData.php успешно выполнена и возвращает некоторые данные. Я проверил его в Firelog, где я вижу следующий результат:Данные JSON не возвращаются

Array{"arr":[["1","EZY14ZM","2013-05-29 16:44:38","2013-05-29 16:45:28"],["1","VLG1307","2013-05-29 16:47:05","2013-05-29 16:47:55"],["1","WZZ212","2013-05-29 16:49:12","2013-05-29 16:50:02"]],"dep":[["1","VLG8306","2013-05-29 16:59:17","2013-05-29 17:00:00"],["1","VLG3786","2013-05-29 17:07:29","2013-05-29 17:08:12"],["1","IBE1851","2013-05-29 17:08:38","2013-05-29 17:09:21"],["1","DLH58Y","2013-05-29 17:09:47","2013-05-29 17:10:30"]]} 

Как решить эту проблему?

function show_data() { 
$.getJSON(
    'h_index.php?module=mod_1&pag_mod=getData.php', 
    function(data) { 
     alert("TEST"); 
    } 
);    
} 

getData.php

<?php 
    //... 
    echo json_encode(array('arr' => $rows_arr, 'dep' => $rows_dep);); 
    die(); 
?> 
+0

Из этого массива, появляющегося в ответе, я предполагаю, что вы эхом отдаете массив вверх в getData.php – Ryan

+0

@ Ryan Pilbeam: To проверьте это, я изменил json_encode следующим образом: json_encode (array ('TEST' => $ rows_arr ...) В результате я получил Array {"TEST": [["1" ... Итак, это эхо возвращается данные JSON. –

ответ

0

Цитата: ваши данные, рассматриваемые в Firebug:

Array{"arr":[["1","EZY14ZM","2013-05-29 16:44 ..... 

Обратите внимание на Array в начале, что это ..... недействительный JSON.

Фактическая функция json_encode(), которую вы вызываете, в порядке. У него есть дополнительная паразитная двоеточие, но это недопустимый синтаксис PHP, поэтому я предполагаю, что он закрался, когда вы разместили вопрос, а не в своем фактическом коде.

Так что бродячий текст Array не производится функцией json_encode(), поэтому он должен быть откуда-то из вашего PHP. Найдите echo или print в другом месте вашего кода, который выводит его по ошибке. (возможно, напечатав переменную массива, а не фактическую строку «Array»)

+0

Чтобы проверить это, я изменил json_encode следующим образом: json_encode (array ('TEST' => $ rows_arr ...) В результате я получил Array {"TEST": [["1" .. Таким образом, это эхо возвращает данные JSON. –

+0

@KlausosKlausos - ваш тест на самом деле ничего не доказывает. Как я уже сказал, «Array» исходит откуда-то еще в вашем коде, это не происходит из 'json_encode()' . Вы можете доказать это, комментируя строку 'json_encode()' полностью ... вы найдете t у вас все еще есть текст «Array» на выходе. – Spudley

+0

да, это правда. Итак, мне нужно найти и прокомментировать какое-то эхо? –

Смежные вопросы