使用jQuery AJAX更新数据库仅一次 [英] Updating database with jQuery AJAX works only one time

查看:204
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆