2013-04-07 209 views
3

我想用PHP代碼更改innerHTML。但我無法實現它,我不明白爲什麼。我希望它改變頁面上的一些文本,但是從另一個文件中。所以我想我可以用這個:如何使用PHP更改innerHTML?

document.getElementById ("page"). innerHTML = "<? php echo $ home?>"; 

但它不起作用。

這裏是我的代碼:

<?php 
$home = file_get_contents("home.php"); 
?> 
<script type="text/javascript"> 
    function ChangePage(page) 
    { 
     if(page == "home") 
      { 
      document.getElementById("page").innerHTML = "<?php echo $home ?"; 
      } 
     } 
</script> 
+4

對於downvoters:'請考慮增加一個評論,如果你認爲這個帖子可以improved.' – 2013-04-07 20:14:04

回答

2

有很多小錯別字。嘗試刪除$和'home'之間和'php'之前的空格。這是正確的說法:

document.getElementById ("page"). innerHTML = "<?php echo $home?>"; 

此外,您的關閉php標記在哪裏?

<?php 
$home = file_get_contents("home.php"); 
?> 
<script type="text/javascript"> 
    function ChangePage(page) 
    { 
     if(page == "home") 
      { 
      document.getElementById("page").innerHTML = "<?php echo $home; ?>"; 
      } 
     } 
</script> 

雖然這是一個不好的做法。你爲什麼要這樣做,而不是簡單地在正確的地方加載PHP?另外,你確實意識到'page'應該是你的html中預先存在的div的id,對吧?像這樣的東西會更好:

<html> 
    <body> 
    <div id = "page"> 
     <?php echo file_get_contents("home.php"); ?> 
    </div> 
    </body> 
</html> 
+0

我會用我的導航欄,所以當我按下一個按鈕,它只會改變我的div與id =頁面。 我不僅僅是家。 – user2255325 2013-04-09 15:23:02

+0

從這個評論我認爲你要做的是動態檢索JavaScript的頁面的不同部分...你不能這樣做,PHP和JavaScript不會這樣工作。 PHP在服務器中首先被引發,然後頁面被下載並且js可以在瀏覽器中執行,但是在那時PHP不能執行(瀏覽器不執行PHP)。儘管可以通過[Ajax]實現類似的功能(http://www.tutorialspoint.com/ajax/)。 – 2013-04-09 20:33:37