avec prototype lorsqu'on utilise ajax.Updater() ou ajax.request() on définit une procédure a appelé avec le parametre "onComplete = traiteReponse".
Ma question est :
peut on passer un parametre a la fonction traiteReponse() ?
avec prototype lorsqu'on utilise ajax.Updater() ou ajax.request() on définit une procédure a appelé avec le parametre "onComplete = traiteReponse".
Ma question est :
peut on passer un parametre a la fonction traiteReponse() ?
Salut,
onComplete reçoit déjà un paramètre, c'est l'objet transport, tu ne peux
pas en définir un autre (à ma connaissance bien sur)
Peux tu donner un bout de code pour voir comment on peut faire ?
excusez moi du retard pour répondre.
Prenons par exemple une liste en HTML :
Ensuite j'ai un script Javascript qui va parcourir la balise <UL> grace au DOM. Et pour chaque balise <LI> trouvé, j'effectue une requete ajax :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6<ul id="container"> <li>rubrique1</li> <li>rubrique2</li> <li>rubrique3</li> </ul>
Je souhaite que la fonction ecriBloc() insere le contenu dans la balise <LI> qui a appelé la requete. Mais je recupere bien l'objet Transport avec le contenu mais je perd l'objet LI a mettre a jour, est ce le premier, deuxieme ......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 new Ajax.Request(uri,{ parameters : param, onComplete : ecriBloc } );
Je ne sais pas si je suis tres clair. En fait, l'ideal serai que dans ma fonction ecriBloc() je puisse recupere l'objet a mettre a jour en second parametre.
Pour l'instant j'ai contourné le pb avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 new Ajax.Updater(li,uri,{ parameters : param, asynchronous:false} );
Salut,
Ajax.Updater est fait pour ça. Maintenant tu peux toujours contourner
le problème ainsi
à tester, bien sur :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $('container').immediateDescendants().each( function(e) { new Ajax.Request(uri,{ parameters : param, onComplete : function(transport) { ecriBloc(transport, e); } }); });
ah oui, j'avais pas pensé a cette méthode : bravo.
Merci beacoup
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager