2013-06-04 45 views
-1

我正尝试通过使用javascript在html标记内创建php脚本。它的想法是,当用户点击一个按钮时,会触发这种类型的PHP脚本来产生并确定从数据库访问的内容。使用javascript在html中生成php

我遇到的问题是无论何时执行javascript,写入的php都会像<!--?php [code] ?-->那样被注释掉。虽然我有意在JavaScript上是这样的<?php [code] ?>

因此,您可以看到标签从脚本更改为评论html标签。

JavaScript代码

function determineDisplay(display_id) { 
    var phpO = "<?php echo "; 
    var phpF = "read_home('" + display_id + "', '"; 
    var phpE = "'); ?>"; 

    var type = []; 
    type[0] = "content_desc"; 
    type[1] = "content_img"; 
    var imgpath = "images/; "; 
    type[2] = "content_comp"; 

//The alerts are to check what is inserted afterwords. 

    document.getElementById(type[0]).innerHTML = phpO + phpF + type[0] + phpE; 
alert(document.getElementById(type[0]).innerHTML); 
    document.getElementById(type[1]).src = phpO + imgpath + phpF + type[1] + phpE; 
alert(document.getElementById(type[1]).src); 
    document.getElementById(type[2]).innerHTML = phpO + phpF + type[2] + phpE; 
alert(document.getElementById(type[2]).innerHTML); 
} 

HTML代码(在HTML有一个默认的PHP,但通过使用JavaScript,它被改变。

<table width="696px" border="1"> 
    <tr> 
     <td><font size="-1" id="content_desc"> 
      <?php read_home('a', 'content_desc'); ?> 
     </font></td> 
     <td> 
     <img id="content_img" src='<?php echo "images/"; read_home('a', 'content_img'); ?>' /> 
     </td> 
    </tr> 

    <tr><td colspan="2" align="center"><font size="-1" id="content_comp"> 
     <?php read_home('a', 'content_comp'); ?> 
    </font></td></tr> 
</table> 

我试图完成这是根据用户点击的按钮,生成read_home() php函数的第一个参数。

**html buttons using javascript for php** 
    <input type="button" id="s" class="support" onclick="determineDisplay('s');"/> 
    <br /> 
    <input type="button" id="a" class="about" onclick="determineDisplay('a');"/> 
    <br /> 
    <input type="button" id="m" class="mission" onclick="determineDisplay('m');" /> 
    <br /> 
    <input type="button" id="v" class="vission" onclick="determineDisplay('v');" /> 
    <br /> 
+3

PHP是服务器端,JS是浏览器端.. – techfoobar

+8

PHP代码运行在服务器端。 Javascript运行在客户端。你不能执行Javascript生成的PHP代码。在Javascript运行时,PHP完成执行。 – showdev

+2

你确实意识到这是行不通的,因为你拥有它是正确的?这个问题有很多错误,直到使用''标签。 – j08691

回答

1

对此的解决方案是使用ajax。当你使用JavaScript时,它的处理是在浏览器端完成的,而你正在尝试生成基于浏览器端渲染的php,这是不可能的,因为php是服务器端预处理器。

由于@ waldol1表示您可以使用Ajax并调用异步请求来与服务器/数据库交互。

+0

谢谢你,我会检查发布的链接。 – user2337345

1

PHP是超文本预处理程序。 Javascript已在页面处理后使用。因此,为什么你不能用Javascript插入PHP标签和脚本。

祝你好运。

编辑:

作为另一个答复中提到,您可以使用Ajax加载后运行的脚本。 他给w3schools.com AJAX例如

也许我建议使用jQuery库:http://api.jQuery.com

3

它的想法是,当用户:http://www.jQuery.com

你可以找到API文档点击一个按钮,即 将触发该类型的php脚本来产生并确定从数据库中访问的 。

你想要做的就是使用ajax。当用户点击你的按钮时,你可以向你的服务器发出一个异步请求,然后你的服务器可以在你的数据库中查找并返回结果到浏览器(它可以把它们交给一个javascript函数),而不用重新加载页面。

http://www.w3schools.com/ajax/

+0

引用ajax的好工作。我可以补充说,更好的方法是使用jQuery库。 $ .Ajax可以在http://api.jquery.com/jQuery.ajax/ – Mic1780

+0

找到,谢谢,我同意使用JQuery库更容易。我只是想,如果OP不理解服务器和客户端的差异,他需要在进入JQuery文档之前阅读w3教程或其他教程。 – waldol1

+0

同意。做得好。 +1 – Mic1780