为什么添加这些代码后,AJAX无法工作?

问题描述:

我有一个删除ORDER记录的页面。这个页面是从AJAX调用的,它完美地工作。但是,一旦我添加了一些代码,我同时更新库存表。看起来AJAX功能已经失效,我无法弄清楚他们有什么问题。请建议我。提前致谢。为什么添加这些代码后,AJAX无法工作?

我的AJAX功能(order_edit.asp)

<script language="JavaScript"> 
     var HttPRequest = false; 
     function doCallAjax(ID) { // delete order 
      HttPRequest = false; 
      if (window.XMLHttpRequest) { // Mozilla, Safari,... 
      HttPRequest = new XMLHttpRequest(); 
      if (HttPRequest.overrideMimeType) { 
       HttPRequest.overrideMimeType('text/html'); 
      } 
      } else if (window.ActiveXObject) { // IE 
      try { 
       HttPRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
       try { 
        HttPRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
       } catch (e) {} 
      } 
      } 

      if (!HttPRequest) { 
      alert('Cannot create XMLHTTP instance'); 
      return false; 
      } 

      var url = '../engine/delorder_edit.asp'; 
      var pmeters = "tID="+ID; 

      var bill_id = document.getElementById('bill_id').value; // additional for delorder_edit.asp 

      HttPRequest.open('POST',url,true); 

      HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
//   HttPRequest.setRequestHeader("Content-length", pmeters.length); 
      HttPRequest.send(pmeters); 


      HttPRequest.onreadystatechange = function() 
      { 

       if(HttPRequest.readyState == 4) // Return Request 
        { 
        if(HttPRequest.responseText == 'Y') 
         {      
         document.getElementById("tr"+ID).style.display = 'none'; 
         } 
        }    
      } 

     } 
</script> 

我delorder_edit.asp页

<% 
    Option Explicit 

    Dim strID 

    strID = Request.Form("tID") 

    Dim Conn,strSQL,objExec 
    Set Conn = Server.Createobject("ADODB.Connection") 
    Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("../database/TKP.mdb"),"" , "" 

'********** ***************************** 
'Open recorset in order to add od_qty back to tbl_inventory before this record was removed 
'****** Once I added these code, my ajax became malfunction ****** 

    Set rsOrder = conn.Execute("SELECT * FROM tbl_order WHERE od_id = "&strID&"" )   
    pd_id = rsOrder.fields.item("pd_id") 
    od_qty = rsOrder.fields.item("od_qty") 
    od_qty = DzToPcs(od_qty) 


    strSQL1 = "UPDATE tbl_inventory SET inv_qty_act = inv_qty_act + " & od_qty & ", inv_date = date() WHERE pd_id = '" & pd_id & "'" 
Set objExec = Conn.Execute(sql1) 


'******************************************* 

    strSQL = "" 
    strSQL = strSQL&"DELETE * FROM tbl_order " 
    strSQL = strSQL&"WHERE od_id = "&strID&" " 


    Set objExec = Conn.Execute(strSQL) 
    If Err.Number = 0 Then 
     Response.write("Y") 
    Else 
     Response.write("N") 
    End IF 





    Conn.Close() 
    Set Conn = Nothing 
%> 
+0

直接在浏览器中打开'delorder_edit.asp'页面,传递'tid'作为查询字符串来检查,你将不得不修改'request.form'到asp部分中的'request'测试。检查你是否看到一些错误 – SearchAndResQ

所有我会建议使用jQuery.ajax方法调用服务器的方法,所以首先你代码会更少,也更方便理解。第二件事,调试:

"HttPRequest.onreadystatechange = function()", 

并检查返回什么值。除非我们没有得到确切的错误,否则我们无法向您建议解决方案。