2013-04-07 57 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