使用jQuery AJAX更新数据库只能工作一次

我正在尝试使用jQuery更新数据库。 该function工作得很好,但只有一次。 如果我想再次更新数据库,我必须刷新页面并清除缓存。 我正在使用MODX Revolution,我不确定这是否与此问题有关。 这是代码:

      $(document).ready(function(){ $('#paina').submit( function updateTitle() { var mail = $("#output").val(); $.ajax({ type: "POST", url: "gettable.php", data: "mail="+ mail, cache: false, success: function(data){ alert(mail); } }); return false; }); });  

PHP:

 close(); 

来自jQuery文档:

注意:将缓存设置为false只能与HEAD和GET请求一起正常工作

丑陋的修复:在查询字符串中附加一个随机参数:

 $.ajax({ type: "POST", url: "gettable.php", data: "mail="+ mail + "&timestamp=" + new Date(), // Will append the current date in milliseconds since January 1, 1970 (correct me if I'm wrong). cache: false, success: function(data){ alert(mail); } }); 

尝试更改ajax以帮助调试,我还添加了一个数据对象并将sync设置为false以确保ajax在返回之前完成执行

 $(document).ready(function(){ $('#paina').submit( function() { $.ajax({ type: "POST", url: "gettable.php", data: {mail: mail}, cache: false, async: false, success: function(data){ alert(mail); }, error function(){ alert("Failed"); } }); }); }); 

您不需要在表单上执行操作,因为jQuery正在处理它

 

谢谢你的提示。 我找到了解决方案,MODX Revolution使用xPDO数据库连接,所以我不得不将PHP代码更改为:

 $mail=$_POST["mail"]; $dsn = 'mysql:host=localhost;dbname=databasename;port=3306;charset=utf-8'; $xpdo = new xPDO($dsn,'user','password'); $results = $xpdo->query("UPDATE modx_site_content SET pagetitle='$mail' WHERE longtitle='jee'");