2011-11-22 172 views
0

我有一個表單允許用戶使用Ajax和ASP編輯數據庫中的數據。不知道爲什麼ajax調用不按要求更新數據庫。AJAX請求不更新SQL Server數據庫

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,方法是輸入從表單直接輸出到頁面的數據,並按預期更新數據庫。

任何想法?

+1

標題說「MySQL」和標籤說「SQL Server」 - 現在是哪一個? –

+0

對不起,它實際上是SQL Server。但是在這種情況下數據庫類型並不重要,因爲問題是Ajax有機會運行之前的表單處理。我改變了問題的標題。對不起,再次感到困惑。 – ckpepper02

回答

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 
    }); 
+0

你真棒!謝謝。這是確實的。 – ckpepper02