javascript - readystate never reaching 4 -
in code below try post data table , retrieve several records table afterwards. testing purposes have included dummy query in php, returns valid xml.
but javascript readystate reach readystate 1 (twice). php seems working fine suspect have scripted javascript incorrectly. problem "request" variable?
$(document).ready(function() { $('form').submit(function(event) { //trigger on form submit $('#name + .throw_error').empty(); //clear messages first var name = $('input[name=name]').val(); var request = !window.xmlhttprequest ? new activexobject('microsoft.xmlhttp') : new xmlhttprequest; request.onreadystatechange = function() { if (request.readystate == 4 && request.status == 200) { var xml = request.responsexml; var dynamiclist = ''; document.getelementbyid("mylink").innerhtml = ''; var posts = xml.documentelement.getelementsbytagname("post"); (var = 0; < posts.length; i++) { var msg = posts[i].getattribute("msg"); alert("test"); var dynamiclist = dynamiclist + '<article class="middlecontent"><header><h2><a href="#" title="post">' + msg + '</a></h2></header> </article>'; document.getelementbyid("mylink").innerhtml = dynamiclist; }; }; }; request.open('post', 'process.php', true); request.setrequestheader("content-type", "application/x-www-form-urlencoded"); request.send('name=' + name); }); });
using jquery makes sense here.
simple solution remove last "true" in request.open(), makes request asynchronous, non-blocking 1 (which should anyway). mdn states @ onreadystatechange shouldn't using synchronous requests (aka requests have "true" third argument open())
source: https://developer.mozilla.org/en-us/docs/web/api/xmlhttprequest
Comments
Post a Comment