On Nov 20, 2007 5:34 PM, Miki Vz [email protected] wrote:
without having to install any MVC system like Rails or anything?
AJAX is fairly simple, at least as long as you ignore the “XML” part
of it and use HTML or JSON (Javascript Over Network) to deal with it.
The very easiest way to do AJAX is to just have a new command
handler/new script that output the HTML you want to replace with, and
do something like this (example with the jQuery library):
That’s simple AJAX.
If you want to include JSON data and do DOM manipulation directly, you
can do JSON calls like this:
$.getJSON("/autodb/ajaxapi.wa2",{_cmd: cmd, xBoatType: xBoatType,
xBrand: xBrand, xModel: xModel}, function(j) {
var elm = document.forms[‘search’].elements[id];
RemoveChildren(elm);
for (var i=0; i<j.length; i++) {
AddOption(j[i].optValue, j[i].optDisplay, j[i].optSelected,
elm);
}
})
Here, you need to have your callback method output “JSON”, JavaScript
structures outputted over net. You can find examples of it on the
net; for a simple example, here’s something that the above script
(“ajaxapi.wa2”) outputs for one of our structures:
[{optSelected: 0, optValue: 0, optDisplay: ‘Alle (80)’},{optSelected:
0, optValue: 8001005, optDisplay: ‘Fiskebåt/Sjark (2)’},{optSelected:
0, optValue: 8001008, optDisplay: ‘Gummibåt (0)’},{optSelected: 0,
optValue: 8001006, optDisplay: ‘Jolle/Åpen båt (4)’},{optSelected: 0,
optValue: 8001010, optDisplay: ‘Kano/Kajakk (0)’},{optSelected: 0,
optValue: 8001001, optDisplay: ‘Motorbåt (64)’},{optSelected: 0,
optValue: 8001003, optDisplay: ‘Motorseiler (0)’},{optSelected: 0,
optValue: 8001009, optDisplay: ‘RIB (0)’},{optSelected: 0, optValue:
8001012, optDisplay: ‘Seilbrett, (0)’},{optSelected: 0, optValue:
8001002, optDisplay: ‘Seilbåt (8)’},{optSelected: 0, optValue:
8001007, optDisplay: ‘Skjærgårdsjeep (0)’},{optSelected: 0, optValue:
8001004, optDisplay: ‘Snekke (2)’},{optSelected: 0, optValue: 8001011,
optDisplay: ‘Vannscooter (0)’}]
Notice how close it is to Ruby array/hash structure? The only thing
is that hash keys must be followed by : instead of =>. Remember to
escape your single-quotes; they almost certainly WILL show up even if
you’re sure they won’t. (Or at least they did for us…)
Hope that helped a bit.
Eivind.