![](/img/trans.png)
[英]How to pass php array string to javascript function as a parameter?
[英]How to pass PHP array parameter to Javascript Function?
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; ?>);" />
javascript.js
function showMovies(movies) {
alert(movies.length);
return false;
}
我是編程新手,所以我很難修復這個對你們來說顯然很簡單的問題。
當我點擊提交按鈕時,它說數組大小為 1,我認為應該是 7。這怎么可能?
<input type="submit" value="Test Javascript" onclick='showMovies(<?php echo json_encode($movies); ?>);' />
Notice the json_encode
, which encodes objects or arrays for Javascript (JSON stands for JavaScript Object Notation) and also notice the '
instead of "
, because JSON uses "
.
雖然,這個解決方案會更好:
<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">
嘗試這個
PHP 代碼
<script type="text/javascript" src="javascript.js"> </script>
<?php
$movies = array("Bloodsport", "Kickboxer", "Cyborg", "Timecop", "Universal Soldier", "In Hell", "The Quest");
$mov_str = implode(",", $movies);
?>
<input type="submit" value="Test Javascript" onclick="showMovies('<?php echo $mov_str; ?>');" />
在 Javascript 文件中
function showMovies(movies) {
movies = movies.split(",");
alert(movies.length);
return false;
}
Output
7
我希望這能幫到您。
輸出前編碼為 JSON。
<input type="submit" value="Test Javascript" onclick="showMovies(<?php echo json_encode($movies); ?>);" />
您的 PHP 變量僅存在於服務器上。 它們與客戶端上的 JavaScript 變量完全分開。 將值從服務器傳遞到客戶端的唯一機制是通過 web 頁面的內容(或通過AJAX的特別請求的幕后 web 內容)。
這意味着要使您的 JavaScript 接收 PHP 值,您必須編寫 JavaScript 並將這些值嵌入其中。 您必須將 PHP 與 JavaScript 混合至少一點點,以使在客戶端上運行的東西能夠從服務器獲取任何數據。
這就是所有 web 服務器端腳本在所有語言中的工作方式。
JavaScript 根本無法知道您的電影變量中發生了什么,除非您在 JavaScript 中將其填滿值。
我建議您查看@levu 的答案,以了解將 PHP 變量的值轉換為 JavaScript 的好方法。
<?php
$movies = array("Bloodsport", "Kickboxer", "Cyborg", "Timecop", "Universal Soldier", "In Hell", "The Quest");
$str=implode(",",$movies);
?>
<script type="text/javascript" >
var arr=new Array();
var str="<?php echo $str; ?>";
arr=str.split(',');
//alert(arr.toSource());
function showMovies(movies) {
alert(movies.length);
return false;
}
</script>
<input type="submit" value="Test Javascript" onclick="showMovies(arr)" >
嘿,請在上面使用以獲得您想要的結果。 它是經過測試的代碼。
您可以通過 json_encode() 在 js 中傳遞數組 php function .. json_encode() 會將數組轉換為字符串。 您可以通過在 js 中刪除該字符串來獲取數組。
您還可以使用 json_encode() 解析 JavaScript 的數組
$array = array('1','a','b');
echo '<script type="text/javascript">';
echo 'var x = ' . json_encode($array) . ';';
echo '</script>';
這也適用於關聯 arrays:
$array = array("x" => '1',"y" => 'a',"z" => 'b');
echo '<script type="text/javascript">';
echo 'var x = ' . json_encode($array) . ';';
echo '</script>';
我認為這是一個很好的。
onclick="showMovies({{json_encode($movies)}})"
由我的一位同事解決(Istiaq Harun Shovon)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.