Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to query database from JavaScript using Ajax and PHP correctly?
    text
    copied!<p>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.</p> <p>Here's the JS code:</p> <pre><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 &lt; 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() {} </code></pre> <p>The XML is being generated correctly. Anyone can light me up with what's wrong in my code? Thank you very much!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload