0

我有一个用于删除 ORDER 记录的页面。该页面是从 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
%>
4

1 回答 1

0

首先我会建议使用jQuery.ajax方法来调用服务器方法,这样你的代码会更少,也更容易理解。第二件事,调试:

 "HttPRequest.onreadystatechange = function()", 

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

于 2013-01-18T04:56:27.000 回答