2012-01-17 12 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); ?>'; 

と私はの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の配列にはどのようにアクセスしていますか?
たとえば、userDatausernameを取得したいとします。

答えて

4

json_encodeの出力を引用符で囲んでいるため、$userDataはオブジェクトではなく文字列です。上

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

ので:引用符を失うことはJavascriptのオブジェクトを作成します。

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からデータを取得して$ _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> 
としてそれを使用する使用します
関連する問題