Encadenant Ajax.Updater

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

oriol

oriol wrote 1166 posts

Post navigation