2012-01-17 2 views
0

Я следующий массив в PHP:Как получить доступ к результату json_encode,.?

$user_data = Array 
(
    [session_id] => 30a6cf574ebbdb11154ff134f6ccf4ea 
    [ip_address] => 127.0.0.1 
    [user_agent] => Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 
    [last_activity] => 1326795168 
    [user_id] => 1 
    [username] => praditha 
    [logged_in] => 1 
    [user_status] => 1 
    [email] => [email protected] 
) 

, а затем в JavaScript, кодировать этот массив в JSON с помощью:

var userData = '<?php echo json_encode($user_data); ?>'; 

и я с помощью Firebug, чтобы увидеть значение USERDATA и это результат:

"{"session_id":"30a6cf574ebbdb11154ff134f6ccf4ea","ip_address":"127.0.0.1","user_agent":"Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1","last_activity":1326795168,"user_id":"1","username":"praditha","logged_in":true,"user_status":"1","email":"[email protected]"}" 

и вопрос, как ди я достигаю массив userData?
Например, я хочу получить username из userData.

ответ

4

Поскольку вы завернули свой вывод json_encode в кавычки, $userData представляет собой строку вместо объекта. Потеря котировки создаст объект Javascript:

var userData = <?php echo json_encode($user_data); ?>; 
alert(userData.username); 
3
userData.session_id; 
userData.ip_appress; 

и так далее.

1

Вам просто нужно удалить цитаты вокруг строки в Javascript. Меняем:

var userData = '<?php echo json_encode($user_data); ?>'; 

к:

var userData = <?php echo json_encode($user_data); ?>; 

josn_encode() выводит Javascript литерал объекта, поэтому правильный код Javascript. Окружая его кавычками, вы просто заполняете строку этими данными, но если вы их удалите, это сработает.

2

Не цитируйте это. Только

var userData = <?php echo json_encode($user_data); ?>; 

затем вы можете получить доступ к userData.session_id и так далее.

0
<DIV id="test"><?echo json_encode($_POST);?></div> 



<div id="ajax"> 

</div> 

<script> 
var sample=$("#test").text(); 
var obj = jQuery.parseJSON(sample); 
$("#ajax").load("ceva.php",obj); 

</script> 

Просто сценарий, который я использовал для получения данных из div и отправки его сценарию с использованием $ _POST. Использование JQuery

1

использовать его в качестве

<?php 
$data = array('index1'=>'value1','index2'=>'value2'); 
?> 
<script> 
    var json_data = <?php echo json_encode($data);?>; 
    alert(json_data['index1']); 
    alert(json_data['index2']); 
</script> 
Смежные вопросы