Re: [PHP] RE: AJAX with POST

2009-04-05 Thread Bruno Fajardo
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 phps...@gmail.com

 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 s...@bigskypenguin.com 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:s...@bigskypenguin.com]
 Sent: Saturday, April 04, 2009 5:30 PM
 To: php-general@lists.php.net
 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



Re: [PHP] RE: AJAX with POST

2009-04-05 Thread Phpster



On Apr 4, 2009, at 21:33, Skip Evans s...@bigskypenguin.com 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);


The false param above is the (a)synchronous flag. By setting it to  
false, you are asking for a synchronous call, hence the wait. Set it  
to true and the call becomes asynchronous and the user would not have  
to wait. It would depend on what you are doing with the return call to  
see if that flag is set appropriate to the application goals.







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);


The null indicates to the server that all data has been sent.






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:s...@bigskypenguin.com]
Sent: Saturday, April 04, 2009 5:30 PM
To: php-general@lists.php.net
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



Hth

Bastien 


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] RE: AJAX with POST

2009-04-04 Thread Brad Broerman
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:s...@bigskypenguin.com]
Sent: Saturday, April 04, 2009 5:30 PM
To: php-general@lists.php.net
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


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] RE: AJAX with POST

2009-04-04 Thread Skip Evans

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:s...@bigskypenguin.com]
Sent: Saturday, April 04, 2009 5:30 PM
To: php-general@lists.php.net
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



Re: [PHP] RE: AJAX with POST

2009-04-04 Thread Phpster
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 s...@bigskypenguin.com 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:s...@bigskypenguin.com]
Sent: Saturday, April 04, 2009 5:30 PM
To: php-general@lists.php.net
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