2013-04-21 2 views
0

У меня возникла проблема с взаимодействием между PHP и JavaScript через JSON.обработка данных JSON, отправленных php с javascript

PHP-Script считывает данные из моей базы данных. Результат SQL состоит из 1 строки.

название | lat | lng


Kilian | 45.1252335 | 32.2142380

Он кодируется в формате JSON:

$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email"; 
$result = mysqli_query ($dbc, $query) or die ('Error querying database.'); 
$to_encode = array(); 
while($row = mysql_fetch_assoc($result)) { 
    $to_encode[] = $row; 
} 
echo json_encode($to_encode); 

Программа JavaScript загружает файл в формате JSON из PHP-скрипта (get_locations.php):

$.getJSON('get_locations.php', function (data) { 
     $.each(data, function(i, name) { 
      alert(name.parent_level); 
     }); 
    }); 

Но нет никакого предупреждения в браузер. Если я проверяю отправленный JSON в Chrome, он просто говорит []. Как я могу получить отправленное имя, lat и lng?

Редактировать: Выходной сигнал get_locations.php в реальном мире равен []. Преобразование строки JSON в строку всегда приводило к [].

+0

Вы уверены, что у пользователя есть результаты? Если это так, попробуйте с помощью нажатия на '$ to_enconde' использовать индекс вместо [] (по какой-то причине json_encode делает с этим странные вещи). – Think

+0

Не могли бы вы добавить какой-то реальный мир из get_locations.php? В javascript 'console.log (data)' также может помочь. –

ответ

2

Вы смесительные функции:

$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email"; 
$result = mysqli_query ($dbc, $query) or die ('Error querying database.'); 
$to_encode = array(); 
while($row = mysql_fetch_assoc($result)) { 
    $to_encode[] = $row; 
} 
echo json_encode($to_encode); 

Вы создаете mysqli запрос, так что вы должны получить результат с mysqli_fetch_assoc, а не версии mysql_.

+0

Спасибо, что решил! – andrino

+0

Добро пожаловать! Не забудьте нажать галочку рядом с ответами, которые помогут вам работать и для будущих вопросов. ^^ (Вы также получаете репутацию для этого и сделаете тех, кто поможет вам в будущем, более желающих это сделать.) – Jon

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