对于我来说,一直存在一个问题,即如何在JavaScript中使用由我的PHP脚本定义的数组值。
例如,考虑从文件中读取一些值并在JavaScript中使用它们。
您打算如何实现?
对于我来说,一直存在一个问题,即如何在JavaScript中使用由我的PHP脚本定义的数组值。
例如,考虑从文件中读取一些值并在JavaScript中使用它们。
您打算如何实现?
json_encode
函数,安全地返回一个JSON对象,你可以直接在JavaScript中使用它。<?php
$phpArray = array("foo", "bar", "baz");
//....
?>
<script type="text/javascript">
var jsArray = <? echo json_encode($phpArray); ?>;
</script>
输出:
<script type="text/javascript">
var jsArray = ["foo","bar","baz"];
</script>
<?php
# create PHP array:
$php_array = array("one", "two", "three");
# "pass" php array to JS array:
echo "<script language='JavaScript'>\n";
echo "var js_array = new Array();\n";
$ix = 0;
foreach($php_array as $key => $value) {
echo "js_array[$key] = $value;\n";
}
# Rest of JavaScript.....
echo "</script>\n";
?>
更多信息请参考:
http://www.scratch99.com/2008/03/creating-javascript-array-dynamically-from-php-array/
echo "\n";
- Yaakov ShohamJSON是您的选择,自PHP 5.x版本以来,PHP包含一个json_encode()
函数。
<script type="text/javascript">
var arr = <?php echo json_encode($php_array); ?>
</script>
通常情况下,一些热心的人会为旧版本的PHP编写json_encode()函数,请查看php.net上的评论。
你的 PHP 数组需要以某种方式暴露给 JavaScript。如果你想让数组在初始页面加载时对 JS 可用,可以像这样做:
<script type="text/javascript">
myJSArray = <?php echo function_that_generates_array_in_js_syntax($myPHPArray); ?>;
</script>
PHP到JS的变体,不使用json扩展,而是使用join/implode和无循环结构:
<?php
$array= array('one','two','three');
$js_array= '["'. join('","', $array) .'"]';
?>
<script type="text/javascript">
var js_array= <?php echo $js_array;?>;
alert(js_array);
</script>