2012-02-10 3 views
0

У меня есть небольшая проблема, когда я получаю старые сообщения из своей базы данных. Я не могу использовать эту информацию, используя обычный console.log(data.message);, потому что это возвращается неопределенным, но когда я использую console.log(data);Вывод данных php json

[{"message":"Hello","time":{"sec":1328831312,"usec":699000},"user":"4f326ef17edae18d11000000"},{"message":"Heyyy","time":{"sec":1328831324,"usec":48000},"user":"4f33a3db7edae17736000000"},{"message":"afasfasd","time":{"sec":1328831966,"usec":960000},"user":"4f33a3db7edae17736000000"},{"message":"asdfasdfasdf","time":{"sec":1328831968,"usec":283000},"user":"4f33a3db7edae17736000000"},{"message":"old message","time":{"sec":1328831969,"usec":234000},"user":"4f33a3db7edae17736000000"}] 

Я ищу свою базу данных для сообщений между двумя пользователями, а затем цикл по данным, как это

$messages = array(); 
for($i=0; $i<count($cursor['messages']); $i++){ 
    $object = array('message'=>$cursor['messages'][$i]['message'], 
        'time'=>$cursor['messages'][$i]['time'], 
        'user'=>$cursor['messages'][$i]['user']); 

    $messages[] = $object; 
} 
echo json_encode($messages) 

Я хочу, чтобы иметь возможность получать идентификатор, сообщение и время отправки сообщения, чтобы я мог добавить их в историю чата, но я могу зациклиться на выводе информации.

ответ

2

Похоже, что ваш ответ содержится в массиве [].

Если предположить, что паста представитель вы должны быть в состоянии получить данные, которые вы хотите с

data[i].message 

и

data[i].time.sec 

т.д.

В ваших JS вы хотите петлю вверх к data.length для получения каждого сообщения.

Редактировать: Похоже, вы не разбираете строку после ее получения. Пожалуйста, попробуйте следующее

var parsedData; 
if(JSON && JSON.parse) { 
    parsedData = JSON.parse(data); 
} 
else { 
    parsedData = eval(data); 
} 

alert(parsedData[0].message); 
+0

у меня нет никакой удачи, пытаясь что, я не знаю, как удалить массив оберточной из пути я собираю информацию в PHP Я добавил PHP выше – jamcoupe

+0

@jamcoupe жалком удаление массива не является хорошим вариантом, я просто перечитываю ваш вопрос. Ответ на этот вопрос обновляется. – tomfumb

+1

@ jamcoupe Вы фактически десериализуете вывод текста, когда получаете его в JS? Выдаваемый вами вывод является такой же структурой, как если бы я тестировал 'console.log ('[{" message ":" hello "}]')' - это просто текст и требует синтаксического анализа перед использованием в качестве объекта – tomfumb

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