je remonte ce sujet, mais ayant cherché moi aussi, j'ai trouvé cette solution :
ton probleme : exploiter et afficher le resultat appelé par ta fonction AJAX dans différent endroit.
ta solution : "return maVariable;" pour utiliser le dit resultat.
ma solution :
document.getElementById(elementId).innerHTML = liste; // oui bon, là j'ai encore rien inventé...
mais en passant dans ta fonction appelante "elementID" pour exploiter le resultat où tu veux lorsque tu fais appel à la fonction.
exemple avec ta fonction :
Code :
- // inclusion de "elementId" dans les parametres de la fonction
- function ajax_select(req_select,elementId){
- var liste = new Array();
- if(_xmlHttp&&_xmlHttp.readyState!=0){
- _xmlHttp.abort();
- }
- _xmlHttp=getXMLHTTP();
- if(_xmlHttp){
- _xmlHttp.open("GET",_adresseRecherche+"?requete="+req_select);
- _xmlHttp.onreadystatechange=function() {
- if(_xmlHttp.readyState==4 && _xmlHttp.responseXML) {
- liste = traite_reponses(_xmlHttp);
- document.getElementById(elementId).innerHTML = liste ; // appel de elementId pour inserer où il faut ton resultat
- }
- }
- _xmlHttp.send(null);
- }
- }
|
l'appel à la fonction se fait où tu veux dans ta page !APRES CONSTRUCTION! de ton element HTML dont id=elementId
Code :
- <input type="text" id="monInput" onMouseUp="javascript:ajax_select('ta_requete', 'monInput'){">
|
je sais : c'est pas "très" W3C, mais tant que les navigateurs integrerons la methode "innerHTML", c'est quand même plus simple.
tu peux gerer le tout en asynchrone, et inserer le resultat où tu veux dans tes pages html.
inconvénient : si tu veux retourner le resultat dans un script...
mais peut-etre peux-tu appeler une fonction js de mise en forme de "liste" en fonction d'un parametre passé à "ajax_select(req_select,elementId)" ?
-
-oui bon...
ben ce qui fera quand même :
Code :
- function exploitation_1(liste){
- ... exploitation... ;
- document.getElementById(elementId).innerHTML = liste;
- }
- function exploitation_2(liste){
- ... exploitation... ;
- document.getElementById(elementId).innerHTML = liste;
- }
- function exploitation_3(liste){
- ... exploitation... ;
- document.getElementById(elementId).innerHTML = liste;
- }
- function ajax_select(req_select,elementId,typeMiseEnForme){
- ...;
- liste = "...";
- if(exploitation_1) exploitation_1(liste);
- ...;
- }
|
appelé par "ajax_select("ta_Requete","Id_de ton_element, "exploitation_1" );"
voili, voilou...
Message édité par Slidejo le 13-03-2009 à 12:23:29