2012-02-29 5 views
1

У меня есть php-функция для извлечения событий как объектов, и я хочу добавить их в свой существующий ul-list через JQuery. Я хочу передать PHP-переменную в JQuery и хочу, чтобы эта переменная повторялась для создания HTML. Я пробовал с этим:Использование PHP-данных (объектов) в JavaScript/JQuery

$pastEvents = event::getPastEvents($team); 
var test = { pastEvents : '<?php echo $pastEvents; ?>' }; 
for (obj in test.pastEvents) {   
    console.log(obj); 
} 

В результате я получаю только 0, 1, 2, 3, 4, 5, ... в консоли. Var_dump из PHP выглядит так:

array(8) { [0]=> object(game)#10 (17) { ["creatorid":protected]=> int(1) ["tid":protected]=> int(1) ["eid":protected]=> int(12) ["art":protected]=> int(1) ["spielart":protected]=> int(1) ["zeitpunkt":protected]=> string(19) "2012-02-28 11:20:00" ["zeit":protected]=> string(19) "2012-02-18 11:21:50" 

Как я могу получить доступ к объектам из PHP? Как я могу правильно итерации переменной, чтобы я мог получить доступ к данным вроде obj.creatorid ...?

Спасибо!

P.S: Я мог бы решить эту проблему с помощью jQuery-функции ajax - но перед тем, как пользователь нажмет, у меня уже есть доступные данные, поэтому запрос ajax бесполезен.

ответ

1

Для преобразования в json вам необходимо использовать метод json_encode() php.

echo json_encode($array); 

Затем в JQuery (с использованием AJAX)

$.getJSON(url, function(data){ 
    console.log(data)// log the whole json object to console 
}) 
+0

Спасибо. Да, я хочу отлаживать это шаг за шагом, и мой первый результат после «echo json_encode ($ pastEvents)»; «[{}, {}, {}, {}, {}, {}, {}, {}]" -> как это может быть? – Torben

+0

очень странно, потому что var_dump показан правильно. Нужен php5, но он не сработает, если json_encode не является функцией. Не понимаю, все пустые объекты ..sorry – charlietfl

+0

теперь я попробовал с этим: \t для (вар я = 0, длина = test.length; я Torben

0

Вам необходимо использовать JSON. Посмотрите JSON и функции PHP json_encode и json_decode.

0

Используйте возможности JSON. Преобразуйте свои php-данные в JSON. Это легко понять из Javascript.

json_encode($myData); 
json_decode($myData); 

Чтобы прочитать JSON, в Javascript, просто получить к нему доступ как объект.

myObject.myField 
+0

Спасибо за ваш быстрый ответ. Я пробовал вот так: \t \t echo json_encode ($ pastEvents); но результат «[{}, {}, {}, {}, {}, {}, {}, {}]" ->, но результат var_dump $ pastEvents является результатом сверху. Как это может быть ... – Torben

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