我有一个使用点击编辑AJAX POST请求的插件,我编写了所有脚本,但是当我去测试它时,它从未改变我试图修改的数据库值,所以我改变了您设置为将请求报告到我的谷歌控制台的功能的URL,它返回以下内容,
Object {name: "", value: "derp@derpp.com", pk: 23}
这是我尝试使用AJAX的PHP脚本,
<? $query = "
UPDATE users SET email = '".$_POST['value']."' WHERE id = '".$_POST['pk']."'
";
try
{
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$rows = $stmt->fetchAll();
?>
我的整体问题是,AJAX没有更改内容,我手动测试了脚本,一切正常。
修改
我不是手动执行AJAX请求,而是使用了一个名为X-Editable的插件,可以找到文档here
答案 0 :(得分:1)
您是否检查了您发送的数据实际上是在邮寄请求中。我会检查我是否正在使用正确的jquery post请求,例如 的 $。AJAX({ 类型:'POST', url:url, 数据:数据, 成功:成功, dataType:dataType }); 强>
发送帖子数据没有帮助。此外,如果您没有传递任何虚拟值,例如javascript.getTime函数,那么在某个时候xmlhttp对象无法识别为新查询时,最好使用它。 因此,您的网址应为“ url:'dummy ='+ dt.getTime()+'&amp; var1 ='+ $ textbox1.val()” 希望这可以帮助你。
答案 1 :(得分:0)
发布数据类型必须是application / x-www-urlencoded,如果在php中使用$ _POST函数。
HTTP /yourURI HTTP/1.0
Content-Length:xxx
Content-Type:application/x-www-urlencoded
Connection:clsoe
name=&value=derp%40derpp.com&pk=23
无法将对象发布到Server,因为正文......
HTTP /yourURI HTTP/1.0
Content-Length:xxx
Content-Type:application/json
Connection:clsoe
{name: "", value: "derp@derpp.com", pk: 23}
答案 2 :(得分:-2)
修订后的查询...如果您有基于整数的值,则无法引用;
$query = "UPDATE users SET email = '".$_POST['value']."' WHERE id = ".$_POST['pk'];
或使用字符串替换
$query = "UPDATE users SET email = '{$_POST['value']}' WHERE id = {$_POST['pk']}";