Ajax is asynchronous. The option of asynchronous or synchronous can be set in the XMLHTTPRequest object (used by Ajax), but a synchronous call is not Ajax. Cheers, Bruno. 2009/4/5 Phpster <phpster@xxxxxxxxx> > Ajax can be both async and sync. Itsbthe fourth param in the open call and > I believe by default it's a sync call not async > > Bastien > > Sent from my iPod > > On Apr 4, 2009, at 21:33, Skip Evans <skip@xxxxxxxxxxxxxxxxx> wrote: > > But my function using GET does seem to wait. >> >> Granted I cobbled it together from various samples and didn't author it >> from my own deep understanding of the exact process, but here's the snippet >> that does the real work. >> >> req.open('GET', url, false); >> req.send(null); >> >> if(req.responseText) { >> if(req.responseText.substring(0,7) == 'debug!!') { >> alert(req.responseText.substring(7)); >> } >> } >> >> return(req.responseText); >> >> It seems to wait until it has data to return, because it works perfectly. >> I can send it a URL from another function and get the data back from server >> to the function as expected. >> >> The only part of it I'm unsure of is this: >> >> req.send(null); >> >> What does that do? As I said, I cobbled this function from examples, got >> it working, and presto, was off and running. >> >> Skip >> >> >> Brad Broerman wrote: >> >>> Well, as the "A" in Ajax is asynchronous, there's no real way to make it >>> wait. What you would normally do is use a callback: >>> function createXHRObject( ) >>> { >>> if (typeof XMLHttpRequest != "undefined") >>> { >>> return new XMLHttpRequest(); >>> } >>> else if (typeof ActiveXObject != "undefined") >>> { >>> return new ActiveXObject("Microsoft.XMLHTTP"); >>> } >>> else >>> { >>> throw new Error("XMLHttpRequest not supported"); >>> } >>> } >>> function sendAjaxRequest( websvcurl , params, callbackFn ) >>> { >>> var xhrObject = createXHRObject(); >>> xhrObject.open("POST", websvcurl, true); >>> xhrObject.onreadystatechange = function() >>> { >>> if (xhrObject.readyState == 4) >>> { >>> if( xhrObject.responseXML != null ) >>> { >>> callbackFn (xhrObject.responseXML); >>> } >>> } >>> } >>> xhrObject.setRequestHeader("Content-type", >>> "application/x-www-form-urlencoded"); >>> xhrObject.setRequestHeader("Content-length", params.length); >>> xhrObject.setRequestHeader("Connection", "close"); >>> xhrObject.send(params); >>> >>> } >>> -----Original Message----- >>> From: Skip Evans [mailto:skip@xxxxxxxxxxxxxxxxx] >>> Sent: Saturday, April 04, 2009 5:30 PM >>> To: php-general@xxxxxxxxxxxxx >>> Subject: AJAX with POST >>> Hey all, >>> At the risk of being told this is a PHP and not a JS list, but >>> also knowing the discussions on this list, to the benefit of >>> all I believe, very wildly, I'm posting this JS code snippet >>> for some advice. >>> As I posted earlier, my AJAX app that uses a GET to post to >>> the server (and get a response), fails on IE with larger data, >>> so I thought I'd take a shot at writing a POST function, but >>> so far I can get it to get the data back, but the problem is >>> by the time the data has come back the function has already >>> returned null back to the calling function. What I need this >>> function to do is wait for the data to come back and then send >>> it back to caller. Here's the function. Any advice would be >>> greatly appreciated. (The code to get the appropriate object >>> per browser has been omitted.) >>> http.open("POST", url, true); >>> //Send the proper header information along with the request >>> http.setRequestHeader("Content-type", >>> "application/x-www-form-urlencoded"); >>> http.setRequestHeader("Content-length", url.length); >>> http.setRequestHeader("Connection", "close"); >>> http.send(url); >>> http.onreadystatechange = function() {//Call a function when >>> the state changes. >>> if(http.readyState == 4 && http.status == 200) { >>> alert('['+http.responseText+']'); >>> return (http.responseText); >>> } >>> } >>> -- >>> ==================================== >>> Skip Evans >>> Big Sky Penguin, LLC >>> 503 S Baldwin St, #1 >>> Madison WI 53703 >>> 608.250.2720 >>> http://bigskypenguin.com >>> ------------------------------------ >>> Those of you who believe in >>> telekinesis, raise my hand. >>> -- Kurt Vonnegut >>> >> >> -- >> ==================================== >> Skip Evans >> Big Sky Penguin, LLC >> 503 S Baldwin St, #1 >> Madison WI 53703 >> 608.250.2720 >> http://bigskypenguin.com >> ------------------------------------ >> Those of you who believe in >> telekinesis, raise my hand. >> -- Kurt Vonnegut >> >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php >