AJAX请求不更新SQL Server数据库

时间:2011-11-22 20:33:38

标签: ajax sql-server-2005 asp-classic

我有一个表单,允许用户使用Ajax和ASP编辑数据库中的数据。不确定为什么ajax调用没有按要求更新数据库。

AJAX / jQuery代码:

$('#editbtn').click(function(){
        var thisid = $('#edsid').val();
        var enm = $('#edtName').val();
        var eml = $('#edtEmail').val();
        var egp = $('#editSubForm input[name=edgrp]').val();
        var dataString = 'act=upd&sid=' + thisid + '&edName='+ enm + '&edEmail='+ eml + '&edgrp='+ egp;
        $.ajax({
        type: 'GET',
        url: '/subscr_query.asp',
        data:  dataString,
        success: function(){
                //alert(dataString);
                $('#successmsg').append("Edited!");
                $('#successmsg').fadeIn(1200, function(){$(this).fadeOut(2000);});
                },
        error: function(){
                $('#delpop').fadeIn(300);
                }
            });
    });

表单包含一个ID为“editbtn”的提交按钮。表格似乎处理完毕,数据库不会使用当前信息进行更新。

我已经在subscr_query.asp页面上测试了queryString,方法是输入从表单直接输出到页面的数据,并按预期更新db。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我怀疑你没有阻止默认行动;因此,它在执行ajax请求之前提交表单。使用preventDefault

$('#editbtn').click(function(e){
        var thisid = $('#edsid').val();
        var enm = $('#edtName').val();
        var eml = $('#edtEmail').val();
        var egp = $('#editSubForm input[name=edgrp]').val();
        var dataString = 'act=upd&sid=' + thisid + '&edName='+ enm + '&edEmail='+ eml + '&edgrp='+ egp;
        $.ajax({
        type: 'GET',
        url: '/subscr_query.asp',
        data:  dataString,
        success: function(){
                //alert(dataString);
                $('#successmsg').append("Edited!");
                $('#successmsg').fadeIn(1200, function(){$(this).fadeOut(2000);});
                },
        error: function(){
                $('#delpop').fadeIn(300);
                }
            });
      e.preventDefault(); // prevent default action
    });