执行PHP&带HTML按钮的SQL

时间:2015-06-21 14:47:13

标签: javascript php jquery mysql arrays

我有一个网页,其中包含使用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文件访问数组,以及如何运行{{1}单击HTML按钮上的函数。

2 个答案:

答案 0 :(得分: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数组项目列表应该是json格式,例如。

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

答案 1 :(得分:1)

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

您在submit.php中包含home.php,它在服务器端声明了一个函数submit()。您的代码在服务器端从不执行此功能,因此服务器端输出为空,即。 <?php include_once ('submit.php');?>评估为空。客户端接收的是仅包含按钮的HTML文件,函数submit()永远不会传递给浏览器。

请记住:服务器端脚本在服务器上执行始终从不传递给浏览器。这意味着当文件到达浏览器时,您将永远不会再看到<?php?> - 那些PHP代码已经很久完成了。

为了达到你想要的目的,你需要找到什么:

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

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

  3. 使用服务器端脚本(PHP)读取POST-ed数据,将数据提取到数组中。

  4. 实际上,您提出了三个问题。他们真的很直白;你可以自己阅读。

    我要做的是为您推荐一个架构:

    • home.phphome.html:包含按钮<link href="home.css"><script src="home.js">
    • home.js客户端脚本,用于侦听按钮点击并将AJAX提交至submit.php
    • home.css:按钮的样式以及home.html / home.php中的其他元素。
    • submit.php服务器端脚本,用于检查POST变量和SQL更新操作。

    另一个问题:您使用的是已弃用的代码<center>。我建议您删除它并使用CSS来布局按钮。