【问题标题】:AJAX request not updating SQL Server databaseAJAX 请求不更新 SQL Server 数据库
【发布时间】:2011-11-22 20:33:38
【问题描述】:

我有一个表单,允许用户使用 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。

有什么想法吗?

【问题讨论】:

  • 标题为“MySQL”,标签为“SQL Server”——现在是哪一个??
  • 对不起,它实际上是 SQL Server。但在这种情况下,数据库类型并不重要,因为问题在于 Ajax 有机会运行之前的表单处理。我更改了问题的标题。再次为您的困惑感到抱歉。

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


【解决方案1】:

我怀疑您没有阻止默认操作;因此,它在执行 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
    });

【讨论】:

  • 你太棒了!!谢谢你。确实做到了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
相关资源
最近更新 更多