可能重複:
Pass a PHP string to a Javascript variable (including escaping newlines)你能從腳本訪問php變量中的數據嗎?
所以我不知道是否有可能訪問數據的一個PHP變量,在一個jQuery/JavaScript的腳本。假設我有一個wordpress查詢/循環,它會從數據庫中調出一個特定的帖子。
那麼,如果我存儲在後一個PHP變量,有沒有什麼辦法,我可以一個JavaScript /腳本中引用該變量/後的?
可能重複:
Pass a PHP string to a Javascript variable (including escaping newlines)你能從腳本訪問php變量中的數據嗎?
所以我不知道是否有可能訪問數據的一個PHP變量,在一個jQuery/JavaScript的腳本。假設我有一個wordpress查詢/循環,它會從數據庫中調出一個特定的帖子。
那麼,如果我存儲在後一個PHP變量,有沒有什麼辦法,我可以一個JavaScript /腳本中引用該變量/後的?
是的。您可以。
方案:1如果HTML和PHP是在單獨的文件
HTML
<html>
<head>
<script type='text/javascript' src='code.php' runat='server'></script>
<script>
// you can get phpVar here
alert(phpVar);
</script>
</head>
<body>
</body>
</html>
code.php
<?php
$value =" Value from PHP";
echo "var phpVar = '". $value ."'";
?>
方案:2如果HTML和PHP是在同一個文件
<?php $value =" Value from PHP"; ?>
<html>
<head>
<script>
<?php echo "var phpVar ='" . $value ."'"; ?>
alert(phpVar);
</script>
</head>
<body>
</body>
</html>
你可以做一個PHP頁面的下方。
<script>
alert("<?php echo $hello_world;?>");
</script>
但是,這不會在.js文件中工作,因爲它顯然沒有設置爲解釋PHP語法。
所以,當你的瀏覽器啓動請求,它命中服務器。服務器處理請求,運行所有必要的方法並設置變量,然後將結果發送回瀏覽器。此時,任何不在會話中的東西都會死在PHP端(即它不是持久的),所以沒有辦法讓javascript訪問這個php變量。
如果你想要做的是通過一個PHP變量或對象的JavaScript函數,我推薦使用json_encode: http://www.php.net/manual/en/function.json-encode.php
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
上面的例子將輸出:
{"a":1,"b":2,"c":3,"d":4,"e":5}
能否談談在這樣的腳本標籤後內嵌(假設你在「循環」,只有一個輸出後)輸出信息:
<script>
var post_id = <?php the_ID(); ?>;
var post_title = "<?php the_title(); ?>";
var post_excerpt = "<?php the_excerpt(); ?>";
</script>
但是,這取決於你想完成什麼,你可能要以不同的方式處理這個。也許使用腳本以JSON格式輸出發佈數據,以便它可以被javascript本地理解,然後編寫AJAX函數來檢索和呈現這些帖子。這裏有一些資源可能會有所幫助:
真棒,謝謝你們。很多工作。 – 2012-03-20 19:34:52