I’m trying to do a simple exercise querying a database from JS using XMLHTTPrequest Object and POST method. Basically I pass a string to PHP server, it recieves it, queries DB and returns an XML from where I read the information with JS, but something is not working: the callback function that should be executed after request is ready.
Here’s the JS code:
function leerDNI(dni){
var params="dni="+dni;
downloadUrl(params,"genxml.php", function(data) {
var xml = parseXml(data);//THIS IS NOT BEING EXECUTED
var dnis = xml.documentElement.getElementsByTagName("dni");//THIS IS NOT BEING EXECUTED
for (var i = 0; i < dnis.length; i++) {//THIS IS NOT BEING EXECUTED
var name = dnis[i].getAttribute("name");
alert(name); //THIS IS NOT BEING EXECUTED
document.getElementById("name").value=name; //THIS IS NOT BEING EXECUTED
}
});
}
function downloadUrl(params,url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request.responseText, request.status);
}
};
request.open("POST", url, true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//creación de headers
request.send(params);//enviamos la petición POST
}
function parseXml(str) {
if (window.ActiveXObject) {
var doc = new ActiveXObject('Microsoft.XMLDOM');
doc.loadXML(str);
return doc;
} else if (window.DOMParser) {
return (new DOMParser).parseFromString(str, 'text/xml');
}
}
function doNothing() {}
The XML is being generated correctly. Anyone can light me up with what’s wrong in my code? Thank you very much!
I’ve solved the issue, it was this line:
That was supossed to be substituted for:
Because I was generating persona nodes.
Thanks for your answers!