var request; var queryString; //will hold the POSTed data function updateCities() { var txtSt = document.getElementById("stateabbr"); if(txtSt.selectedIndex == 0) { if(document.getElementById("cityDisplay")) { document.getElementById("cityDisplay").style.visibility = 'hidden'; } return false; } sendData(); clearZip(); } function sendData() { setQueryString(); var url = "http://tse.porschedealer.com/dealer/usLocator/Script/ajax1.php"; httpRequest("POST",url,true); } //event handler for XMLHttpRequest function handleCheck() { if(request.readyState == 4) { for(i = (document.getElementById('cityid').options.length - 1); i >= 0; i--) { document.getElementById('cityid').remove(i); } if(request.status == 200) { var cityListStr = request.responseText; var cityListArray = new Array(); if(cityListStr != '') { cityListArray = cityListStr.split(':::::'); } if(document.getElementById('cityid')) { var newOption = document.createElement("OPTION"); newOption.text = 'View all'; newOption.value = 'ALL'; document.getElementById('cityid').options.add(newOption); for(i = 0; i < cityListArray.length; i++) { var newOption = document.createElement("OPTION"); newOption.text = cityListArray[i]; newOption.value = cityListArray[i]; document.getElementById('cityid').options.add(newOption); } } } else { alert("A problem occurred with communicating between the XMLHttpRequest object and the server program."); } }//end outer if } /* Initialize a Request object that is already constructed */ function initReq(reqType, url, bool) { /* Specify the function that will handle the HTTP response */ request.onreadystatechange = handleCheck; request.open(reqType, url, bool); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); request.send(queryString); } /* Wrapper function for constructing a Request object. Parameters: reqType: The HTTP request type such as GET or POST. url: The URL of the server program. asynch: Whether to send the request asynchronously or not. */ function httpRequest(reqType, url, asynch) { // Mozilla-based browsers if(window.XMLHttpRequest) { request = new XMLHttpRequest(); } else if(window.ActiveXObject) { request=new ActiveXObject("Msxml2.XMLHTTP"); if (!request) { request=new ActiveXObject("Microsoft.XMLHTTP"); } } //the request could still be null if neither ActiveXObject //initializations succeeded if(request) { initReq(reqType,url,asynch); } else { alert("Your browser does not permit the use of all of this application's features!"); } } function setQueryString() { queryString = ""; var frm = document.getElementById('stateform'); var numberElements = frm.elements.length; for(var i = 0; i < numberElements; i++) { if(i < numberElements - 1) { queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value) + "&"; } else { queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value); } } queryString += '&country=US'; } function clearZip() { if(document.getElementById("zip")) document.getElementById("zip").value = ""; } function clearPhrase() { if(document.getElementById("phrase")) document.getElementById("phrase").value = ""; } function clearState() { if(document.getElementById('state')) { document.getElementById('state').selectedIndex = 0; } if(document.getElementById('cityid')) { document.getElementById('cityid').selectedIndex = 0; } return false; }