使用 HTML 按钮执行 PHP 和 SQL

Posted

技术标签:

【中文标题】使用 HTML 按钮执行 PHP 和 SQL【英文标题】:Executing PHP & SQL with HTML button 【发布时间】:2015-09-07 01:38:42 【问题描述】:

我有一个网页,其中包含使用 javascript/jquery 生成的数组。在按下按钮时,我想运行一个 php 函数,它使用 JavaScript 数组更新 mysql 数据库。

我有一个带有 PHP 函数的 .php 文件,它连接到数据库并运行 UPDATE 查询,我想使用该数组。

所以我有 home.php,它有按钮:

<?php
include_once ('submit.php')
?>
    <center><button id="submit" class="button1" >Submit<span></span></button></center>

和数组:

<script>
   selectedItemsArray;
</script>

我有 submit.php,它有 sql UPDATE:

    function submit()
            $sql = $dbh->prepare("UPDATE pending_trades SET item_list=:itemlist,");
            $sql->bindParam(':itemlist', /*array taken from home.php*/);            

            $sql->execute();
   

我会在将数组放入数据库之前将其转换为 JSON,但我需要知道如何使用 submit.php 文件访问该数组,以及如何在html 按钮单击。

【问题讨论】:

JavaScript 不能直接与 PHP 对话,因为它们在时间上不兼容。 JS 在客户端上运行,到那时,在服务器上运行的 PHP 已经完成了它的工作并且早已不复存在。你需要 AJAX。 【参考方案1】:

使用 jquery AJAX.

<button  id = "submit"  class = "button1" > Submit <span></span></button>

你的 js 代码

$('#submit').click(function()$.ajax(
      method: "POST",
      url: "submit.php",
      data: itemlist,
      .done(function( msg ) 
        alert( "Data Saved: " + msg );
      );
);

和你的 php 文件。不包含文件

$array = json_decode($_POST['itemlist'], true);

记住你的 js 数组 itemlist 应该是 json 格式,例如

$itemlist = '"a":1,"b":2,"c":3,"d":4,"e":5';

【讨论】:

谢谢。当我在做js AJAX代码时,会在“submit.php”中运行函数吗?如果没有,我该如何将其添加到该代码中?【参考方案2】:

这里有多个问题。最关键的是,您似乎混淆了服务器端和客户端脚本。

您将submit.php 包含在home.php 中,它在服务器端声明了一个函数submit()。您的代码在服务器端从未执行过此函数,因此服务器端输出为空,即&lt;?php include_once ('submit.php');?&gt; 评估为无。客户端收到的是一个只有按钮的 HTML 文件,函数submit() 永远不会传递给浏览器。

记住:服务器端脚本总是在服务器上执行,绝不传递给浏览器。这意味着当文件进入浏览器时,您将永远不会再看到 &lt;?php?&gt; - 这些 PHP 代码早就完成了。

你需要找出什么来完成你的目标:

    使用客户端脚本 (JavaScript) 监听按钮点击。

    使用客户端脚本 (JavaScript) 通过 AJAX 将表单提交到服务器。

    使用服务器端脚本 (PHP) 读取 POST 后的数据,将数据提取到数组中。

实际上,您是在问三个问题。他们真的很简单;你可以自己读。

我会为你推荐一个架构:

home.phphome.html:包含按钮,&lt;link href="home.css"&gt;&lt;script src="home.js"&gt;home.js客户端脚本监听按钮点击并将AJAX提交给submit.phphome.csshome.html/home.php中的按钮和其他元素的样式。 submit.php服务器端脚本检查 POST 变量和 SQL 更新操作。

另一个问题:您正在使用已弃用的标签&lt;center&gt;。我建议您删除它并改用 CSS 布局按钮。

【讨论】:

以上是关于使用 HTML 按钮执行 PHP 和 SQL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用PHP将SQL Select语句链接到HTML按钮

单击按钮后使用 PHP 将 HTML 输入到 SQL 查询中

如何在单击Html按钮上执行存储过程?

使用html按钮执行sh文件单击[重复]

在按钮单击时执行 php Shortcode

如何在onclick按钮中执行php [重复]