Re: [PHP] Rasmus' 30 second AJAX Tutorial - [was Re: [PHP] AJAX PHP]
function sndReq(action) { http.open('get', 'rpc.php?action='+action); http.onreadystatechange = handleResponse; http.send(null); } So with AJAX, the data gets sent back to the browser using GET? Is there any way you can do it using POST? thnx, Chris -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Rasmus' 30 second AJAX Tutorial - [was Re: [PHP] AJAX PHP]
Chris Boget wrote: function sndReq(action) { http.open('get', 'rpc.php?action='+action); http.onreadystatechange = handleResponse; http.send(null); } So with AJAX, the data gets sent back to the browser using GET? Is there any way you can do it using POST? The prototype for the http.open method looks like this: open(method,URL,async,uname,pswd) So to do a POST request instead, just use 'post' instead of 'get' in the first argument. Then put the url encoded post data in the http.send() call. -Rasmus -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Rasmus' 30 second AJAX Tutorial - [was Re: [PHP] AJAX PHP]
Richard Lynch wrote: On Thu, July 21, 2005 3:50 pm, Rasmus Lerdorf said: I find a lot of this AJAX stuff a bit of a hype. Lots of people have been using similar things long before it became AJAX. And it really Call me silly, but... Didn't a LOT of us move a bunch of code to PHP instead of JS because JS was so flaky, because browser implementations were so... diverse..., because you never knew if the user even *HAD* javascript, really, and you just didn't want to rely on it? Is anybody going to claim that any of the fundamental problems with client-side scripting have changed? Got a bridge to sell, too? If it's just eye-candy, and doesn't matter to the functioning of your web-site, go for it. If you NEED it to work, JS is simply not the right way to go, even with today's landscape. Browser technology has advanced a bit since then. Today we are no longer dealing with a pseudo-SGML hack called HTML like we were 10 years ago. Today's web browser is a DOM Tree viewer. In Firefox you can click on Tools-DOM Inspector and click through the tree of the page you are on. The language to manipulate this DOM Tree is Javascript. And yes, Javascript gets this DOM manipulation right, because it is so closely integrated with the actual parsing of the tree. If it didn't work, the browser wouldn't work either. For example, take this JS: foo = document.getElementById('some_id').value; This obviously gets the value of the field with some_id. This prods the same DOM tree with the same code that the browser itself uses when it wants to know what the value is in a given element of the tree. So at this level Javascript is fine, and yes, you can count on it working in all modern browsers. If any of them can't do this, they won't be around long. It gets a bit dicier when you try to extend out beyond simple document manipulation, but that is really no different than trying to push the boundaries of CSS or trying to get IE to speak CSS2. The bar keeps getting raised. In my opinion it has been raised well above basic Javascript for quite a while now. -Rasmus -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Rasmus' 30 second AJAX Tutorial - [was Re: [PHP] AJAX PHP]
I find a lot of this AJAX stuff a bit of a hype. Lots of people have been using similar things long before it became AJAX. And it really isn't as complicated as a lot of people make it out to be. Here is a simple example from one of my apps. First the Javascript: function createRequestObject() { var ro; var browser = navigator.appName; if(browser == Microsoft Internet Explorer){ ro = new ActiveXObject(Microsoft.XMLHTTP); }else{ ro = new XMLHttpRequest(); } return ro; } var http = createRequestObject(); function sndReq(action) { http.open('get', 'rpc.php?action='+action); http.onreadystatechange = handleResponse; http.send(null); } function handleResponse() { if(http.readyState == 4){ var response = http.responseText; var update = new Array(); if(response.indexOf('|' != -1)) { update = response.split('|'); document.getElementById(update[0]).innerHTML = update[1]; } } } This creates a request object along with a send request and handle response function. So to actually use it, you could include this js in your page. Then to make one of these backend requests you would tie it to something. Like an onclick event or a straight href like this: a href=javascript:sndReq('foo')[foo]/a That means that when someone clicks on that link what actually happens is that a backend request to rpc.php?action=foo will be sent. In rpc.php you might have something like this: switch($_REQUEST['action']) { case 'foo': /* do something */ echo foo|foo done; break; ... } Now, look at handleResponse. It parses the foo|foo done string and splits it on the '|' and uses whatever is before the '|' as the dom element id in your page and the part after as the new innerHTML of that element. That means if you have a div tag like this in your page: div id=foo /div Once you click on that link, that will dynamically be changed to: div id=foo foo done /div That's all there is to it. Everything else is just building on top of this. Replacing my simple response id|text syntax with a richer XML format and makine the request much more complicated as well. Before you blindly install large AJAX libraries, have a go at rolling your own functionality so you know exactly how it works and you only make it as complicated as you need. Often you don't need much more than what I have shown here. Expanding this approach a bit to send multiple parameters in the request, for example, would be really simple. Something like: function sndReqArg(action,arg) { http.open('get', 'rpc.php?action='+action+'arg='+arg); http.onreadystatechange = handleResponse; http.send(null); } And your handleResponse can easily be expanded to do much more interesting things than just replacing the contents of a div. -Rasmus Joe Harman wrote: Yeah, AJAX is really going to change the way web applications are made... I've messed around with the tutorials with it... I've also seen it referred to as XMLHttpRequest .. I think the AJAX class transforms your PHP functions into javascript... seems like the class is just made to for people like me who are heavy with PHP... but don't have a clue about javascript... from my impression you need to be able to have a tiny bit of javascript programming skill to really put it to use... do a search on google for XMLHttpRequest PHP Tutorial .. there is a lot there Good Luck.. Joe On 7/21/05, Paul Waring [EMAIL PROTECTED] wrote: On Thu, Jul 21, 2005 at 11:22:25AM +0530, balwant singh wrote: Have anybody tried PHP AJAX, may please share your experience. also pls. suggest good link of tutorial on this. I haven't tried it myself, but this looks rather good, article on how to implement Google Suggest in PHP: http://tinyurl.com/dxs8b Paul -- Rogue Tory http://www.roguetory.org.uk -- 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] Rasmus' 30 second AJAX Tutorial - [was Re: [PHP] AJAX PHP]
On Thu, July 21, 2005 3:50 pm, Rasmus Lerdorf said: I find a lot of this AJAX stuff a bit of a hype. Lots of people have been using similar things long before it became AJAX. And it really Call me silly, but... Didn't a LOT of us move a bunch of code to PHP instead of JS because JS was so flaky, because browser implementations were so... diverse..., because you never knew if the user even *HAD* javascript, really, and you just didn't want to rely on it? Is anybody going to claim that any of the fundamental problems with client-side scripting have changed? Got a bridge to sell, too? If it's just eye-candy, and doesn't matter to the functioning of your web-site, go for it. If you NEED it to work, JS is simply not the right way to go, even with today's landscape. -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Rasmus' 30 second AJAX Tutorial - [was Re: [PHP] AJAX PHP]
On Friday 22 July 2005 02:46, Richard Lynch wrote: If you NEED it to work, JS is simply not the right way to go, even with today's landscape. I think that depends on whether you have a closed environment, such as an intranet, or an open environment like a public web server. In the public case, I'd agree that relying on JS is a bad idea. On a controlled closed environment, there's a good chance that it's an OK idea (and perhaps a good idea). I'm working in a closed environment - I can see some really useful tricks with the JS based 'go check this and come back' method for some of the input fields I need. Will I actually do it? I dunno, I have other things to write first : -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php