Javascript 使用JQUERY更新Mysql

Javascript 使用JQUERY更新Mysql,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我在理解如何让它工作上有点困难。我正在使用jquery从mysql db表加载一个包含数据的页面。我希望能够在不刷新的情况下对单个记录进行mysql更新。这是我尝试过的代码,但无法使更新生效 index.php function showUser(str) { if (str == "") { document.getElementById("txtHint").innerHTML = ""; return; } else { if

我在理解如何让它工作上有点困难。我正在使用jquery从mysql db表加载一个包含数据的页面。我希望能够在不刷新的情况下对单个记录进行mysql更新。这是我尝试过的代码,但无法使更新生效

index.php

function showUser(str) {
    if (str == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","data_ajax.php?q="+str,true);
        xmlhttp.send();
    }
}
这里我在while循环中有一个下拉列表,用于检索所需的记录并将其发布到
中。到目前为止,一切顺利

现在,我将以下内容放在data_ajax.php中以进行mysql更新

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    $(".update_button").click(function() {
        var id = $(this).attr("id");
        var dataString = 'id='+ id ;
        var parent = $(this).parent();

        $.ajax({
            type: "POST",
            url: "update_ajax.php",
            data: dataString,
            cache: false,
        });

        return false;
    });
});
</script>

$(函数(){
$(“.update_按钮”)。单击(函数(){
var id=$(this.attr(“id”);
var dataString='id='+id;
var parent=$(this.parent();
$.ajax({
类型:“POST”,
url:“update_ajax.php”,
数据:dataString,
cache:false,
});
返回false;
});
});

其中我有一个文本链接
,它应该调用上面的操作来进行更新。所有这些都会使页面跳转到顶部,而不会发生任何事情。单击链接时,似乎不会调用update_ajax.php。我知道我错过了一些简单的东西。任何帮助都将不胜感激。

更新您的jQuery版本。您的示例显示了如何使用版本
1.4.2


ajax速记代码是在1.5版之后引入的。

我建议将jQuery直接包含在index.php中,这样您就可以使用事件委派来处理大部分工作

由于jQuery包含在index.php中,您也可以使用jQuery执行showUser ajax请求

function showUser(str) {
    if (str == "") {
        $("#txtHint").empty();
        return;
    }
    $("#txtHint").load("data_ajax.php?q=" + str);
}
$(document).ready(function () {
    $("#txtHint").delegate(".update_button", "click", function () {
        var id = $(this).attr("id");
        var dataString = 'id='+ id ;
        var parent = $(this).parent();

        $.ajax({
            type: "POST",
            url: "update_ajax.php",
            data: dataString
        });

        return false;
    });
});

确保jquery正在实际运行并附加了一个单击处理程序。否则,
将只是一个常规的锚定标记,由于href是
#
,单击它将跳转到页面顶部。I。。。不明白为什么要向一个在单击时发出另一个ajax请求的页面发出ajax请求。还可能有一个问题,就是您在片段中加载jquery,使用jquery的代码很可能在定义jquery之前执行。实际上应该在前面包含jquery,而不是在ajax请求之后。@Kevin B例如,不可能在使用ajax加载的动态列表上进行实时更新吗?我以为这会很简单,但我可能对此有些不知所措。是的,不用重新加载页面就可以实时更新数据。我怀疑你这样做的方法。您在代码中做了一些有问题的事情,因此我试图找出它背后的思想过程,以便能够更正。我向您保证,他使用的$.ajax语法存在于1.0中,我认为在1.5之前,它的编码是:$.ajax(url,设置);1.5添加了$.ajax(url,settings),$.ajax(settings)始终存在,而不是将url包含在您的设置数组中。您的代码完成了这项任务,并且mysql更新得到了正确执行。现在唯一的事情是,在我从数据库重新加载数据之前,原始列表不会更新。