我有一个表单,允许用户使用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。
有什么想法吗?
答案 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
});