如何将PHP数组参数传递给Javascript函数?

Son*_*Man 4 html javascript php client-server server-side-scripting

index.php

<script type="text/javascript" src="javascript.js"> </script>
<?php
 $movies = array("Bloodsport", "Kickboxer", "Cyborg", "Timecop", "Universal Soldier", "In Hell", "The Quest");
?>

<input type="submit" value="Test Javascript" onclick="showMovies(<?php echo $movies; ?>);" />
Run Code Online (Sandbox Code Playgroud)


javascript.js

function showMovies(movies) {
 alert(movies.length);

 return false;
}
Run Code Online (Sandbox Code Playgroud)

我是编程的新手,所以我很难修复这个,这对你们来说显然很简单.

当我点击提交按钮时,它表示数组大小为1,我认为应该是7.这怎么可能?

Flo*_*ian 9

<input type="submit" value="Test Javascript" onclick='showMovies(<?php echo json_encode($movies); ?>);' />
Run Code Online (Sandbox Code Playgroud)

注意json_encode,为Javascript(JSON代表JavaScript Object Notation)编码对象或数组,并注意'而不是",因为JSON使用".

虽然,这个解决方案会更好:

<script type="text/javascript">
    document.getElementByID('submitButton').onclick = function() {
        var movies = <?php echo json_encode($movies); ?>;
        showMovies(movies);
    };
</script>
...
<input type="submit" value="Test JavaScript" id="submitButton">
Run Code Online (Sandbox Code Playgroud)