无法使用 PHP 和 JQuery Ajax 将新记录插入 mysql db

Posted

技术标签:

【中文标题】无法使用 PHP 和 JQuery Ajax 将新记录插入 mysql db【英文标题】:Can't insert new record to mysql db with PHP and JQuery Ajax 【发布时间】:2013-12-27 10:09:18 【问题描述】:

我有这个数据库:

表用户:用户名、密码

表产品:productID、productName

在我的 admin.php 中,如果我单击 id 为 btn 的按钮,我想在 id 为 show 的 div 中显示 insert.php

admin.php:

 <?php
      session_start();
      include("connection.php");
 ?>
 <html>
 <head>

     <script type="text/javascript" src="jquery.js"></script>
     <script type="text/javascript">
         $(document).ready(function()
             $("#btnInsert").click(function()
                 $("#show").load("insert.php");
             );

             $("#btnEdit").click(function()
                 $("#show").load("edit.php");
             );

             $("#btnAdd").click(function()
                 $("#show").load("insertbrg.php");
             );

         );
     </script>

 </head>

 <body>
     <div id = "menu">
         <button id = "btn">Insert</button><BR>
     </div>
     <div id = "show">
         &nbsp;
     </div>

 </body>
 </html>

在 insert.php 中:

 <?php
 session_start();
 include("connection.php");
 ?>

 Product ID : <input type = "text" name = "txtID"><BR>
 Product Name : <input type = "text" name = "txtName"><BR>
 <input type = "button" name = "btnAdd" id = "btnAdd" value = "Add Item to DB">

如果我点击 btnAdd,admin.php 中的 jquery 将加载 insertbrg.php 以将 Item 添加到数据库

插入brg.php:

 <?php
     if(isset($_REQUEST['btnAdd']))
         $newID= $_REQUEST['txtID'];
         $newName= $_REQUEST['txtName'];

         $query = "Select * from Product";
         $result = mysql_query($query,$conn);

         $idExist = false;

         if($result)
             while ($row= mysql_fetch_array($result))
             
                 if ($row["productID"] == $newID)
                     $idExist = true;
                 
             
         

         if ($idExist)
             echo "ID Exist ";

         else
             $query2="insert into product values('$newID','$newName')";
             $result = mysql_query($query2,$conn);
             header("location:insert.php");
         

     

 ?>

如果我单击 btnAdd 按钮,我无法将项目插入到我的数据库中

我也收到了这个警告:

event.returnValue is deprecated. Please use the standard event.preventDefault() instead.

每次我点击 admin.php 中的 btn 按钮时

有人知道怎么回事吗? 我是 JQuery AJAX 的新手。请帮忙...

【问题讨论】:

event.returnValue is deprecated. 是(可能)来自旧版本的 jQuery 或其他包含的 javascript 文件的通知。您需要升级或替换为event.preventDefault。我敢肯定有很多关于它的问题。 警告是因为 jQuery 使用了一个过时的方法。 当您调用 .load("insertbrg.php") 时,您不会向 PHP 脚本发送任何参数。您希望它添加什么? 为什么在 AJAX 服务器函数中调用 header("location:")?使用 AJAX 的全部意义在于页面不会重新加载。 【参考方案1】:

更新您的 jQuery 文件并确保您正确传递要插入的数据,以便 php 可以抓取它们并插入到数据库中。

您可以通过get或post发送数据,最好使用jQuery中的ajax函数。

您可以在此处找到详细信息:http://api.jquery.com/jQuery.ajax/

【讨论】:

【参考方案2】:

这是因为没有发送任何东西

$("#show").load("insertbrg.php");

它必须接受诸如

之类的参数
$("#show").load("insertbrg.php?txtid="+txtid);

【讨论】:

以上是关于无法使用 PHP 和 JQuery Ajax 将新记录插入 mysql db的主要内容,如果未能解决你的问题,请参考以下文章

我无法使用 PHP 和 jQuery 将表单数据更新到 MySQL

如何使用 php jquery ajax 上传文件和插入数据

使用 jQuery Ajax 和 PHP 的 CORS 请求

无法使用 jquery 和 ajax 删除多个用户(codeigniter 3)

使用 PHP ajax 和 jQuery 插入每个函数

使用 ajax jquery php 和 mysql 制作账单