Hi,
I have successfully setup the AJAX functinality (the front-end part), I tested it by generating a static file using PHP.
The problem is my $_POST is not working.
Heres the Javascript code that prepares the Form Array and send it to AJAX function getData(formArray)
function setFormArray() {
var formArray = "fromCity=" + document.getElementById("fromCity").value +
"&fromState=" + document.getElementById("fromState").value +
"&fromZipcode=" + document.getElementById("fromZipcode").value +
"&toCity=" + document.getElementById("toCity").value +
"&toState=" + document.getElementById("toState").value +
"&toZipcode=" + document.getElementById("toZipcode").value +
"&rate=" + document.getElementById("rate").value +
"&parking=" + document.getElementById("parking").value +
"&tolls=" + document.getElementById("tolls").value +
"&miles=" + document.getElementById("miles").value +
"&taxPercent=" + document.getElementById("taxPercent").value +
"&gasPercent=" + document.getElementById("gasPercent").value +
"&gasAmount=" + document.getElementById("gasAmount").value;
getData('process/rates_xml.php',formArray);
}
Heres the Ajax function getData(formArray)
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
// Create the object if the browser is non-microsoft
XMLHttpRequestObject = new XMLHttpRequest();
// Firefox browsers have problems getting XML document, so override the mimetype manually
XMLHttpRequestObject.overrideMimeType("text/xml");
} else if (window.ActiveXObject) {
// or Create the object for microsoft browser
try {
XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
// inform users if their browser does not support XMLHttpRequest object
if (!XMLHttpRequestObject) {
alert('Your browser doesn\'t support this feature.');
}
// Making Requet to Server
function getData(theURL, theForm)
{
if(XMLHttpRequestObject) {
var url = theURL;
var formArray = theForm;
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4) {
if (XMLHttpRequestObject.status == 200) {
var xmlDocument = XMLHttpRequestObject.responseXML;
displayData(xmlDocument);
} else if (XMLHttpRequestObject.status != 0) { // some versions of IE can return 0
alert('There was a problem with the request.(Code: ' + XMLHttpRequestObject.status + ')');
}
}
}
// make request to server using POST method
XMLHttpRequestObject.open("POST", url, true);
XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8")
XMLHttpRequestObject.send(formArray);
}
}
Heres the function that display the XML
function displayData(xmldoc) {
document.getElementById("fromCity").value = getNodeValue(xmldoc.getElementsByTagName("fromCity")[0]);
document.getElementById("fromState").options[0].text = getNodeValue(xmldoc.getElementsByTagName("fromState")[0]);
document.getElementById("fromZipcode").value = getNodeValue(xmldoc.getElementsByTagName("fromZipcode")[0]);
document.getElementById("toCity").value = getNodeValue(xmldoc.getElementsByTagName("toCity")[0]);
document.getElementById("toState").options[0].text = getNodeValue(xmldoc.getElementsByTagName("toState")[0]);
document.getElementById("toZipcode").value = getNodeValue(xmldoc.getElementsByTagName("toZipcode")[0]);
document.getElementById("rate").value = getNodeValue(xmldoc.getElementsByTagName("rate")[0]);
document.getElementById("parking").value = getNodeValue(xmldoc.getElementsByTagName("parking")[0]);
document.getElementById("tolls").value = getNodeValue(xmldoc.getElementsByTagName("tolls")[0]);
document.getElementById("miles").value = getNodeValue(xmldoc.getElementsByTagName("miles")[0]);
document.getElementById("taxPercent").value = getNodeValue(xmldoc.getElementsByTagName("taxPercent")[0]);
document.getElementById("gasPercent").value = getNodeValue(xmldoc.getElementsByTagName("gasPercent")[0]);
document.getElementById("gasAmount").value = getNodeValue(xmldoc.getElementsByTagName("gasAmount")[0]);
}
and Heres the PHP file that generates the XML file.
<?php
print "<?xml version='1.0'?>";
print "<rates>";
print "<fromCity>$_POST['fromCity']</fromCity>";
print "<fromState>$_POST['fromState']</fromState>";
print "<fromZipcode>$_POST['fromZipcode']</fromZipcode>";
print "<toCity>$_POST['toCity']</toCity>";
print "<toState>$_POST['toState']</toState>";
print "<toZipcode>$_POST['toZipcode']</toZipcode>";
print "<rate>$_POST['rate']</rate>";
print "<parking>$_POST['parking']</parking>";
print "<tolls>$_POST['tolls']</tolls>";
print "<miles>$_POST['miles']</miles>";
print "<taxPercent>$_POST['taxPercent']</taxPercent>";
print "<gasPercent>$_POST['gasPercent']</gasPercent>";
print "<gasAmount>$_POST['gasAmount']</gasAmount>";
print "</rates>";
?>