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