【问题标题】:PHP query runs even if button is not clicked即使未单击按钮,PHP 查询也会运行
【发布时间】:2015-07-02 02:21:26
【问题描述】:

我有一个奇怪的问题。我设置了一个查询以在数据库中插入两个名称。我还使用 Javascript(Jquery) 仅在单击创建按钮时运行它。但是每次我重新加载页面时它都会运行......

按钮:

<button id="button-create" type="button" style="float:right;">Create</button>

脚本:

$(document).ready(function(){
    $("#button-create").click(function(){
        $('body').append('<div class="box" id="12"><div class="head">Homework<button class="button-delete" data-panelid="12" type="button" style="float:right;">Delete</button></div><div class="text">Valkommen!</div></div>').children(':last').hide().slideDown(500);
        <?php
            $query123 = $pdo->prepare("INSERT INTO post (head, content) VALUES       ('John', 'Doe')");
            $query123->execute();
        ?>
    });
});

【问题讨论】:

  • 您没有在函数或条件语句中调用查询,因此它在您每次加载页面时执行。您应该尝试使用 AJAX 执行此操作。
  • PHP 在页面被提供给客户端之前在服务器上运行那么,当浏览器收到 PHP 脚本的执行结果时,它会解析/执行任何客户端的 Javascript 代码。
  • PHP 在页面提供给客户端之前在服务器端运行。如果您只想在按钮单击时执行 ajax 调用,则需要进行调用

标签: javascript php jquery mysql database


【解决方案1】:

这样做的原因是因为它是 PHP 代码。渲染 PHP 文件时,服务器将执行所有 PHP。因此,当您运行页面时,它会在进入浏览器之前运行该 php 代码...

所有 PHP 将被执行,只有 PHP 的 输出 将被发送到浏览器。所以你的数据库执行将已经执行。

PHP 代码 => 在服务器上运行

JS 代码 => 在浏览器中运行

他们无法直接交流。

如果您想做这样的事情,您需要对将执行 SQL 查询的页面进行 ajax 调用。

我会推荐观看这篇关于 PHP 和 Javascript 区别的介绍:https://www.youtube.com/watch?v=dJJvK3Fre0I

【讨论】:

    【解决方案2】:

    这是因为您的 PHP 脚本在每次您的服务器(例如 Apache)为该页面提供服务时执行,或者简单地说,用户重新加载该页面。

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多