下面是我的代码,其中 php array $ keys 分配给 JS数组var keysArr , 但是警告框上显示的值不正确。
因此,将Php数组分配给Js数组会出现问题。
任何人都可以帮助我吗?提前谢谢!
<?php
$keys = array(1, 2, 3, 4);
?>
<html>
<head>
<script type="text/javascript">
var keysArr = <?php print $keys?>;
for (var i = 0; i < keysArr.length; ++i){
alert(keysArr[i]);
}
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:9)
var keysArr = <?php json_encode($keys) ?>;
需要PHP&gt; = 5.2.0,但旧版本可以使用第三方json_encode()实现。
答案 1 :(得分:1)
试试这个,它不需要JSON扩展:
var keysArr = [ <?php print implode(',', $keys); ?> ];
for (var i = 0; i < keysArr.length; ++i){
alert(keysArr[i]);
}
答案 2 :(得分:1)
<?php
$keys = array(1, 2, 3, 4);
?>
<html>
<head>
<script type="text/javascript">
var keysArr = Array(<?php foreach($keys as $key) echo (is_numeric($key))? $key : '"'.$key.'"' ;?>);
for (var i = 0; i < keysArr.length; ++i){
alert(keysArr[i]);
}
</script>
</head>
<body>
</body>
</html>
试试这个......我还没有测试过,但它会打印没有引号(“)的数字和其他东西。
答案 3 :(得分:0)
试试这个
<?php
$keys = array(1, 2, 3, 4);
?>
<html>
<head>
<script type="text/javascript">
var keysArr = Array(<?php echo implode(',',$keys);?>);
for (var i = 0; i < keysArr.length; ++i){
alert(keysArr[i]);
}
</script>
</head>
<body>
</body>
</html>
打印你只是显示Array
,而不是js的正确数组代码。查看您生成的HTML内部。