Qui més qui menys s’ha trobat amb problemes a l’hora d’encadenar crides a l’Ajax.Updater de Prototype. Després de donar-hi unes voltes a la feina, vaig crear una petita funció (força rudimentaria) per encadenar crides de forma senzilla:
La funció és la següent:
function MultipleAjaxUpdater(param,divid,pos) { //param = paràmetres a passar al Ajax.Updater //divid = divs a actualitzar pel Ajax.Updater //pos = crida que estem executant (inicialment = 0) var url = 'gestioajax.php'; var pars = param[pos]; var div_desti=divid[pos]; var myAjax = new Ajax.Updater( div_desti, url, { evalScripts: 'true', method: 'get', parameters: pars, onComplete: function() { pos = pos + 1; if (pos < param.length) getAjaxMatriu(param,divid,pos); } } ); }
I un exemple de crida podria ser:
var param = new Array(); // Parametres a passar al Ajax.Updater de forma seqüencial: param[0] = 'action=comentaris&id=213132'; param[1] = 'action=dades&id=213132'; param[2] = 'action=tot&id=213132'; var divid = new Array(); // Divs a actualitzar pel Ajax.Updater de forma seqüencial: divid[0] = "textajax1"; divid[1] = "textajax2"; divid[2] = "textajax3"; MultipleAjaxUpdater(param,divid,0);