【问题标题】:use javascript to produce php in html使用javascript在html中生成php
【发布时间】:2013-05-31 04:33:03
【问题描述】:

我正在尝试使用 javascript 在 html 标记中创建 php 脚本。它的想法是,当用户单击按钮时,将触发 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 />

【问题讨论】:

  • PHP 是服务器端,JS 是浏览器端..
  • PHP 代码在服务器端运行。 Javascript 在客户端运行。您不能执行由 Javascript 生成的 PHP 代码。到 Javascript 运行时,PHP 已完成执行。
  • 您确实意识到这无法正常工作,对吧?这个问题有很多问题,直到使用&lt;font&gt; 标签。
  • 在服务器上执行客户端发送的PHP会有很大的安全隐患!
  • 这听起来像是一个问题,您想使用 ajax 来查询数据库...

标签: php javascript html performance


【解决方案1】:

它的想法是,当用户点击一个按钮时, 触发 php 脚本的类型来生成并确定什么是 从数据库中访问。

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

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

【讨论】:

  • 很好地引用了 ajax。我可以补充一点,一个更好的 ajax 方法是使用 jQuery 库。 $.Ajax 可以在api.jquery.com/jQuery.ajax 找到
  • 谢谢,我同意使用 JQuery 库更容易。我只是想,如果 OP 不了解服务器端和客户端的区别,他需要在进入 JQuery 文档之前阅读 w3 教程或其他教程。
【解决方案2】:

解决方案是使用ajax。当您使用 javascript 时,它的处理是在浏览器端完成的,而您试图基于浏览器端呈现生成 php,这是不可能的,因为 php 是服务器端预处理器。

正如@waldol1 所说,您可以使用Ajax 并调用异步请求来与服务器/数据库进行交互。

【讨论】:

    【解决方案3】:

    PHP 是超文本的预处理器。处理页面后使用 Javascript。因此,为什么您不能使用 Javascript 插入 PHP 标记和脚本。

    祝你好运。

    编辑:

    正如另一个答案提到的,您可以在加载后使用 Ajax 运行脚本。 他给了 w3schools.com ajax 例子

    我可以建议使用 jQuery 库吗:http://www.jQuery.com

    您可以在以下位置找到 api 文档:http://api.jQuery.com

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 2014-01-10
      • 2013-06-07
      • 2020-04-24
      • 2012-10-25
      相关资源
      最近更新 更多