jquery - AJAX POST 无法更新 MySQL 数据库的问题

标签 jquery mysql ajax post updates

我有一个通过 AJAX 调用的表单(用于在 CMS 上使用),然后该表单用于更新内容数据库,但是它不起作用,我似乎无法弄清楚在哪里。

一切都在提交之前完成,因为所有字段都正确填写了数据库行、列等,并且数据预先填充了当前的内容。问题出在 AJAX commit() 函数和 eupdate.php MySQL 查询之间。

eform.php(通过另一个页面 eindex.php 拉取并显示)

<?php
require("../mcfrdb.php");
// Included database once using the require method

$item = $_POST['item'];
$page = $_POST['page'];

$row = mysql_query("SELECT * FROM mcfr WHERE pageid = '$page'");
$data = mysql_fetch_array($row);
?>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript">    </script>
<script type="text/javascript">var $j = jQuery.noConflict();</script>

<script type="text/javascript">

function submit(){
$j.ajax({ 
type:"POST",
url:"eupdate.php", 
data: "item=" + $j('#item') + "&itemcont=" + $j('#itemcont') + "&page=" + $j('#page'),
success:function(response){ 
    $j("#msg").html(response); 
    }
}); 
}

</script>
<div id="msg"></div>
<form id = "edititem" name = "edititem" onsubmit="return false;" method="post" >
<textarea cols="20" rows="5" name="itemcont" id="itemcont"><? echo $data[$item]; ?></textarea>    <br/>
<input type="text" name="item" id="item" value="<? echo $item; ?>"><br/>
<input type="text" name="page" id="page" value="<? echo $page; ?>"><br/>
<input type="button" value="make changes" onclick="submit()" >
</form>

eupdate.php

<?php
require("../mcfrdb.php");
// Included database once using the require method

$item=$_POST['item'];
$page=$_POST['page'];
$newcont=$_POST['itemcont'];

$row = mysql_query("UPDATE mcfr SET '$item' = '$newcont' WHERE pageid = '$page'");  

?>

当我单击按钮提交时,在检查我的数据库后,没有任何更改或更新。

提前感谢所有回复,希望我们能解决这个问题:) 干杯

最佳答案

由于您使用 AJAX 提交数据,因此不需要使用 form 元素(特别是它要求您执行其他操作以防止数据正常提交)。

无论如何,基本问题可能是您如何(不)检索字段的值。 $j('#item') 返回绑定(bind)到 item 输入的 jQuery 对象,而不是其值。要获取该值,请使用 .val() 方法,例如:$j('#item').val()

顺便说一句,在任何 SQL 查询中使用 PHP 脚本中发布的数据之前,您还需要对其进行转义,否则您很容易受到一些可怕的 SQL 注入(inject)攻击。请参阅 mysql_real_escape_string 的文档以获取解释:http://php.net/manual/en/function.mysql-real-escape-string.php

关于jquery - AJAX POST 无法更新 MySQL 数据库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377926/

相关文章:

javascript - Bootstrap 导航栏在滚动一定距离后淡出

php - 在一列中选择具有最小值并在另一列中具有特定值的记录

php - 使用 SQL 将 UTC 时间戳转换为 EST 日期和时间

php - Paypal "add to cart"不离开页面

ajax - 如何使用 AJAX 替换 Rails 3 中的 div?

jquery 自动完成不会清除无序列表

javascript - wookmark 修改和 li 并排和在彼此之下

javascript - 处理损坏图像的最佳方法是什么?

java - 无法在 Android 应用程序中使用外部数据库

javascript - Ajax 调用中的数据长度