2012-03-20 38 views
0

可能重複:
Pass a PHP string to a Javascript variable (including escaping newlines)你能從腳本訪問php變量中的數據嗎?

所以我不知道是否有可能訪問數據的一個PHP變量,在一個jQuery/JavaScript的腳本。假設我有一個wordpress查詢/循環,它會從數據庫中調出一個特定的帖子。

那麼,如果我存儲在後一個PHP變量,有沒有什麼辦法,我可以一個JavaScript /腳本中引用該變量/後的?

+0

真棒,謝謝你們。很多工作。 – 2012-03-20 19:34:52

回答

0

是的。您可以。

方案: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> 
0

你可以做一個PHP頁面的下方。

<script> 
    alert("<?php echo $hello_world;?>"); 
</script> 

但是,這不會在.js文件中工作,因爲它顯然沒有設置爲解釋PHP語法。

0

所以,當你的瀏覽器啓動請求,它命中服務器。服務器處理請求,運行所有必要的方法並設置變量,然後將結果發送回瀏覽器。此時,任何不在會話中的東西都會死在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} 
0

能否談談在這樣的腳本標籤後內嵌(假設你在「循環」,只有一個輸出後)輸出信息:

<script> 
var post_id = <?php the_ID(); ?>; 
var post_title = "<?php the_title(); ?>"; 
var post_excerpt = "<?php the_excerpt(); ?>"; 
</script> 

但是,這取決於你想完成什麼,你可能要以不同的方式處理這個。也許使用腳本以JSON格式輸出發佈數據,以便它可以被javascript本地理解,然後編寫AJAX函數來檢索和呈現這些帖子。這裏有一些資源可能會有所幫助:

Wordpress JSON API jQuery AJAX