topical media & game development

talk show tell print

basic-xml-15-soapclient.htm / htm



  <html><head><title>POST Tester</title>
  <script language="JavaScript">
  function doPost()
  {
      var xdDoc, xhHTTP, sXML
      
      //sXML = "<methodCall>   <methodName>topicExchange.getChannels</methodName></methodCall>";
      sXML = "<methodCall>"+
             "<methodName>topicExchange.ping</methodName>"+
             "<params><param><value><string>test</string></value></param>"+
             "<param><value><struct>"+
             "<member><name>blog_name</name>"+
                     "<value><string>"+pingForm.blog_name.value+"</string></value>"+
             "</member><member><name>title</name>"+
                     "<value><string>"+pingForm.title.value+"</string></value>"+
             "</member><member><name>url</name>"+
                     "<value><string>"+pingForm.url.value+"</string></value>"+
             "</member><member><name>excerpt</name>"+
                     "<value><string>"+pingForm.excerpt.value+"</string></value>"+
             "</member></struct></value>"+
             "</param></params>"+
             "</methodCall>";
  
      xdDoc = new ActiveXObject("MSXML.DOMDocument");
      xdDoc.loadXML(sXML);
  
      xhHTTP = new ActiveXObject("MSXML2.XMLHTTP");
      xhHTTP.open("POST", "http://topicexchange.com/RPC2", false);
      xhHTTP.send(xdDoc);
      
      xdDoc = xhHTTP.responseXML;
  
      if(xdDoc.selectSingleNode("//member[name='flError']/value").text == "1")
      {
          var msg = "Error: \n"+xdDoc.selectSingleNode("//member[name='message']/value").text;
          alert(msg);
      }
      else
      {
          var msg = "Success!  Ping "+
               xdDoc.selectSingleNode("//member[name='pingid']/value").text+
               " successfully added to URL "+
               xdDoc.selectSingleNode("//member[name='topicUrl']/value").text;
          alert(msg);
      }
      
  }
  
  function updateTotal(itemid){
  
      var qty = pingForm.elements("qty"+itemid).value;
      var unitPrice = pingForm.elements("unitPrice"+itemid).value;
  
      xdDoc = new ActiveXObject("MSXML.DOMDocument");
  
      xhHTTP = new ActiveXObject("MSXML2.XMLHTTP");
      xhHTTP.open("GET", "http://192.168.1.100/addnumbers1.aspx?quantity=" + qty + "&itemid=" + itemid + "&unitPrice=" + unitPrice, false);
      xhHTTP.send();
      
      xdDoc = xhHTTP.responseXML;
  
  //    alert(xdDoc.xml);
  
      var discount, extPrice;
  
      if (discount != "0") {
              document.getElementById("discount"+itemid).innerHTML = xdDoc.selectSingleNode("/updateTotalsResponse/item/discount").text + "% off";
      }
      pingForm.elements["extPrice"+itemid].value = xdDoc.selectSingleNode("/updateTotalsResponse/item/extPrice").text;
  
  }
  
  function sendOrder(){
  
      var xdDoc, xhHTTP, sXML
      sXML = "<SOAP-ENV:Envelope xmlns:SOAP-ENV="
      sXML = sXML + "'http://schemas.xmlsoap.org/soap/envelope/'>"
      sXML = sXML + "<SOAP-ENV:Body>"
      sXML = sXML + "<submitOrder>";
      sXML = sXML + " <item itemid='Item1'>";
      sXML = sXML + "   <quantity>"+pingForm.qtyItem1.value+"</quantity>";
      sXML = sXML + "   <extPrice>"+pingForm.extPriceItem1.value+"</extPrice>";
      sXML = sXML + " </item>";
      sXML = sXML + " <item itemid='Item2'>";
      sXML = sXML + "   <quantity>"+pingForm.qtyItem2.value+"</quantity>";
      sXML = sXML + "   <extPrice>"+pingForm.extPriceItem2.value+"</extPrice>";
      sXML = sXML + " </item>";
      sXML = sXML + " </submitOrder>";
      sXML = sXML + " </SOAP-ENV:Body>";
      sXML = sXML + " </SOAP-ENV:Envelope>";
  
      xdDoc = new ActiveXObject("MSXML.DOMDocument");
      xdDoc.loadXML(sXML);
  
   //   alert(xdDoc.xml);
  
      xhHTTP = new ActiveXObject("MSXML2.XMLHTTP");
      xhHTTP.open("POST", "http://192.168.1.100/submitOrder.asp", false);
      xhHTTP.send(xdDoc);
  
      xdDoc = xhHTTP.responseXML;
  
      var orderNumber, status, total;
      orderNumber = xdDoc.selectSingleNode("//orderNumber").text;
      status = xdDoc.selectSingleNode("//status").text;
      total = xdDoc.selectSingleNode("//total").text;
  
      submitSpan.innerHTML = "Order #"+orderNumber+" "+status+" for a total of "+total;
  
  }
  
  </script>
  </head>
  <body>
  <form name="pingForm" id="pingForm">
  <table width="100%">
  <tr><td>Quantity</td><td>Item Name</td><td></td><td>Unit Price</td><td>Total Price</td></tr>
  <tr><td><input id="qtyItem1" name="qtyItem1" size="3" onChange="updateTotal('Item1');" value="1" /></td><td>Item 1</td><td><span id="discountItem1"></span></td><td><input id="unitPriceItem1" name="unitPriceItem1" value="12.95" size="4"/></td><td><input id="extPriceItem1" name="extPriceItem1" size="4" value="12.95" /></td></tr>
  <tr><td><input id="qtyItem2" name="qtyItem2" size="3" onChange="updateTotal('Item2');" value="1" /></td><td>Item 2</td><td><span id="discountItem2"></span></td><td><input id="unitPriceItem2" name="unitPriceItem2" value="19.95" size="4"/></td><td><input id="extPriceItem2" name="extPriceItem2" size="4" value="19.95" /></td></tr>
  </table>
  <span id="submitSpan"><input type="button" value="Submit order" id="submitButton" name="submitButton" onclick="sendOrder()"></span>
  </form>
  </body></html>
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.