Javascript 即使未单击按钮,PHP查询也会运行

Javascript 即使未单击按钮,PHP查询也会运行,javascript,php,jquery,mysql,database,Javascript,Php,Jquery,Mysql,Database,我有一个奇怪的问题。我已经设置了一个查询,以便在数据库中插入两个名称。我还使用JavascriptJquery仅在单击create按钮时运行它。但每次我重新加载页面时它都会运行 按钮: <button id="button-create" type="button" style="float:right;">Create</button> 脚本: $(document).ready(function(){ $("#button-create").click(fu

我有一个奇怪的问题。我已经设置了一个查询,以便在数据库中插入两个名称。我还使用JavascriptJquery仅在单击create按钮时运行它。但每次我重新加载页面时它都会运行

按钮:

<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();
        ?>
    });
});

这是因为每次服务器(例如Apache)为该页面提供服务时,都会执行PHP脚本,或者用户重新加载该页面。

之所以这样做,是因为它是PHP代码。呈现PHP文件时,服务器将执行所有PHP文件。因此,当您运行页面时,它将在进入浏览器之前运行php代码

所有的PHP都将被执行,只有PHP的输出将被发送到浏览器。因此,您的数据库execute将已经执行

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

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

他们无法直接沟通

如果要执行类似的操作,需要对执行SQL查询的页面进行ajax调用


我建议看一下这篇介绍PHP和Javascript之间区别的文章:

您不是在函数或条件语句中调用查询,因此每次加载页面时都会执行查询。您应该尝试在服务器上运行AJAX.PHP,然后再将页面提供给客户端。然后,当浏览器接收到PHP脚本的执行结果时,它将解析/执行任何客户端Javascript代码。在将页面提供给客户端之前,PHP在服务器端运行。如果您只希望在单击按钮时执行ajax调用,则需要执行ajax调用