使用jQuery AJAX更新数据库仅一次 [英] Updating database with jQuery AJAX works only one time
本文介绍了使用jQuery AJAX更新数据库仅一次的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图用jQuery来更新数据库。该函数工作得很好,但只有一次。我刷新页面并清除缓存,如果我想再次更新数据库。我使用镆铘革命,我不知道这有什么关系这一问题。这里是code:
< HTML>
< HEAD>
&LT; SCRIPT LANGUAGE =JavaScript的类型=文/ JavaScript的SRC =// ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js"></script>
&LT; /头&GT;
&LT;身体GT;
&LT;脚本&GT;
$(文件)。就绪(函数(){
$('#paina)。递交(函数updateTitle(){
。VAR邮件= $(#输出)VAL();
$阿贾克斯({
键入:POST,
网址:gettable.php
数据:邮件=+邮箱,
缓存:假的,
成功:功能(数据){
警报(邮件);
}
});
返回false;
});
});
&LT; / SCRIPT&GT;
&LT;形式ID =painaNAME =测试行动=JavaScript的:updateTitle()方法=邮报&GT;
&LT;输入类型=文本ID =输出&GT;
&LT;输入类型=提交值=更新&GT;
&LT; /形式GT;
&LT; /身体GT;
&LT; / HTML&GT;
PHP:
&LT; PHP
$电子邮件= $ _ POST [电子邮件];
$ mysqli的= mysqli_connect(URL,用户,密码,数据库名称);
mysqli_query($ mysqli的,UPDATE modx_site_content SET PAGETITLE ='$邮件'WHERE longtitle ='高考');
回声更新了!;
$ mysqli-&GT;关闭();
解决方案
感谢您的提示。我找到了解决办法,镆铘革命采用xPDO数据库连接,所以我不得不改变PHP code到这一点:
$电子邮件= $ _ POST [电子邮件];
$ DSN ='MySQL的:主机=本地主机,数据库名=数据库名;端口= 3306;的charset = UTF-8;
$ xpdo =新xPDO($ DSN,用户,密码);
$结果= $ xpdo-&GT;查询(更新modx_site_content SET PAGETITLE ='$邮件'WHERE longtitle ='高考');
I'm trying to update a database by using jQuery. The function works just fine, but only once. I have to refresh the page and clear the cache if I want to update the database again. I'm using MODX Revolution, I'm not sure if that has anything to do with this problem. Here is the code:
<html>
<head>
<script language="javascript" type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js"></script>
</head>
<body>
<script>
$(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;
});
});
</script>
<form id="paina" name="test" action="javascript:updateTitle()" method="post">
<input type="text" id="output">
<input type="Submit" value="Update">
</form>
</body>
</html>
PHP:
<?php
$mail=$_POST["mail"];
$mysqli = mysqli_connect("url", "user", "password", "database_name");
mysqli_query($mysqli, "UPDATE modx_site_content SET pagetitle='$mail' WHERE longtitle='jee'");
echo "Updated!";
$mysqli->close();
解决方案
Thanks for the tips. I found the solution, MODX Revolution uses xPDO Database Connections so I had to change PHP code to this:
$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'");
这篇关于使用jQuery AJAX更新数据库仅一次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文