我在PHP中使用以下数组:
$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] => xxx@yyy.com
)
然后在javaScript中,我使用:
将该数组编码为jsonvar 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":"xxx@yyy.com"}"
问题是如何访问userData
的数组?例如,我想获得username
的{{1}}。
答案 0 :(得分:4)
由于您将json_encode
输出包装在引号中,$userData
是一个字符串而不是一个对象。丢失引号将创建一个Javascript对象:
var userData = <?php echo json_encode($user_data); ?>;
alert(userData.username);
答案 1 :(得分:3)
userData.session_id;
userData.ip_appress;
等等。
答案 2 :(得分:2)
不要引用它。刚
var userData = <?php echo json_encode($user_data); ?>;
然后您可以访问userData.session_id
,依此类推。
答案 3 :(得分:1)
您只需要在Javascript中删除字符串周围的引号即可。所以改变:
var userData = '<?php echo json_encode($user_data); ?>';
为:
var userData = <?php echo json_encode($user_data); ?>;
josn_encode()
输出Javascript对象文字,因此它是有效的Javascript代码。通过用引号括起来,你只需用这些数据填充一个字符串,但是如果你删除它们就行了。
答案 4 :(得分: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>
答案 5 :(得分: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