I am trying my first AJAX code. I copied most of the JavaScript from a
January 2008 article by Aaron Bartell. I was able to duplicate his code in
a test program and it worked. I am now trying to make one drop down
selection update another drop down box. My problem is I used Firefox for
debugging my JavaScript, looking for typos extra quotes that sort of
thing. Now it works properly in Firefox (though my html has another issue
there). My problem is I need it to work in IE, It's for internal company
use and that's the browser on everyone's desktop. In IE when I select in
the first drop down the second goes blank. It is updating, but it's not
getting any data. I don't know anyway to debug in IE, Trial and error is
getting really annoying.
The screen is generated using CGIDEV2. and so is the response being sent
back the browser. I do add the heading to the data sent back in the ajax
response. I am just returning html, no XML to build a new set of options
for the <select> grouping.
JavaScript I am using.
<script type="text/javascript">
// setup needed for ajax on diferent browsers
var http = crtReqObj();
function crtReqObj() {
var reqObj;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
reqObj = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
reqObj = new ActiveXObject("Microsoft.XMLHTTP");
}
return reqObj;
}
// get data from billto and update shipto. Use billto as new
default shipto value
function updDropDown(fldName) {
var fld = document.getElementById(fldName);
http.open('get',
'
http://lake:1104/cgi-bro/SYG930?DDMODE=S&DDVIEWNAME=CB01HP&DDFLDNAME=BTCD&DDSELCODE=&DDVARNAME=&DDDEFAULT='
+
fld.value);
http.onreadystatechange = ItmResponse;
http.send(null);
}
function ItmResponse() {
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response == ' '){
document.getElementById("shipto").innerHTML='No matching Ship to found';
} else{
document.getElementById("shipto").innerHTML=response;
}
}
}
</script>
As an Amazon Associate we earn from qualifying purchases.