另一种解决方案 - 而不是创建全局变量,设置一些相关元件的data-
属性数据。不要忘了整个数组/对象进行json_encode()
和生成的字符串,然后htmlspecialchars()
(正如其他人所指出的,缺乏htmlspecialchars()
就是为什么你只得到了原因,“{[”报警输入字段的值时)。当调用htmlspecialchars()
时,不要忘记指定ENT_QUOTES
,或者如果任何值包含撇号字符,则可能会得到无效结果。
<?php
$users = array(
array('name' => 'Average', 'surname' => 'Joe'),
array('name' => 'Average', 'surname' => 'Jane'),
array('name' => 'Joe', 'surname' => 'Sixpack'),
array('name' => 'John', 'surname' => 'Doe'),
array('name' => 'Hong', 'surname' => 'Gildong'),
array('name' => 'Foo', 'surname' => 'Bar'),
);
?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
<title>sandbox</title>
<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>
<script type='text/javascript' src='js/jquery-1.6.1.min.js'></script>
</head>
<body data-users='<?php echo htmlspecialchars(json_encode($users), ENT_QUOTES); ?>'>
<script type='text/javascript'>
$(function() {
var users = $(document.body).data('users');
for (var n in users) {
$('<div/>').text(users[n].name + ' ' + users[n].surname).appendTo(document.body);
}
});
</script>
</body>
</html>
这使得6 <div/>
元素的所有姓名和姓氏作为其内容。
谢谢冠军,我放弃了。第一 – 2011-06-07 07:19:21