无法使用 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">
</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 请求