Lately I have been writing dashlets for the SugarCRM open source CRM solution. It uses JQuery as part of its JavaScript libraries.
I have really been enjoying writing JavaScript with JQuery; it has saved me time writing concise code which also helps me debug and maintain it. So I thought it would be a good idea to rewrite my Ajax example with JQuery to compare its usefulness.
In my previous code I had to first create the XMLHttpRequest object:
var xmlHttpReq;
// Determining which browser we are dealing with
if (window.XMLHttpRequest)
{
xmlHttpReq = new XMLHttpRequest();
xmlHttpReq.overrideMimeType('text/plain');
}
else if (window.ActiveXObject)
{
// this is required if the browser is IE
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
Then I had to prepare the query string and post to the script that would get the me the details:
// generate the query string to post to the script
var queryStr = 'PostCode=' + escape(postcode);
var strURL = 'postcode_lookup.php';
xmlHttpReq.open('GET', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpReq.onreadystatechange = displayPostcode;
// post to script
xmlHttpReq.send(queryStr);
That is too much work! With JQuery things are much easier:
$.get("postcode_lookup.php",
{ PostCode: jQuery('input[@name=PostCode]')[0].value },
function(data)
{
/* Logic to parse data and determine output goes here */
// Writing output into div
$("#outputDiv").html(output);
}
);
That’s it! All it takes is one function to make the Ajax call and then parse the data from the script.
The jQuery.get( url, [data], [callback], [type] ) function takes four parameters. But we are only using three as the last one is optional:
1. The script: postcode_lookup.php.
2. The parameters for the script contained in an array. In this case the value of the text field:
{ PostCode: jQuery(‘input[@name=PostCode]‘)[0].value }
3. The callback function to handle the data returned from the script.
I am quite happy for the amount of work that it has saved me. However I cannot emphasize enough how important it is to understand how the XMLHttpRequest works.
You can find the working example here.
Hi Marcel,
Thanks for the example. But as I’m still not clear on how things work, you might want to provide me with the sourcecode of postcode_lookup.php? Thanks!
Louis.
Sorry to have missed your comment, you might have solved your problem by now.
The php file is the same from my previous post. You can find a zip file the php script there.