IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XMLRAD Discussion :

récupération du contenu d'un iframe après PartialUpdate


Sujet :

XMLRAD

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Par défaut récupération du contenu d'un iframe après PartialUpdate
    Bonjour

    Je fais un SubmitForm dans un iframe vers un XMLService qui fait un Insert. Dans AfterXMLGram, je renvoie la valeur de l'ID correspondant à mon insertion. J'utilise pour cela XMLRequest.SetContent et XMLRequest.SendResponse.
    Si je laisse mon iframe visible, je vois bien la valeur de l'ID dans le iframe. Ma question est comment récupérer cette valeur ?
    Merci d'avance

  2. #2
    Membre éclairé Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Par défaut
    Bonjour,

    Je vois deux directions de solutions possible. En ce qui me concerne je passerais par un appell Ajax, et non du PartialUpdate, ca me parait bien performant et moins "usine à gaz" que du partial update. Tu peux garder donc ton SendResponse et simplement affecter le retour dans un élement du dom html de ta page. L'avantage c'est que tu peux tres simplement faire un sablier ou un gif animé pour faire patienter.... Si tu veux un exemple je peux en faire un ;-)
    Autrement, en partial update, au lieu de faire un SetResponse, tu affectes plutot ton ID dans ta grappe XML (assign) de façon à le déposer dans un champ caché par exemple (peu importe, meme dans un div ca va marcher). Et dans lors du partialUpdate tu peux alors affecter la valeur de ton champ ou de ton div (innerHTML) à un champ de ta page principale. C'est plus "simple" si tu n'as jamais fait d'ajax... et aussi plus xmlradien peut etre

    Michael

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Par défaut
    salut

    Je veux bien un petit exemple Ajax.

    Pour ta solution PartialUpdate, j'avoue que je ne vois pas trop. En effet, je ne retourne pas un XMXLService qui permettrait d'utiliser la technique classique du PartialUpdate (body onload....)

    Merci

  4. #4
    Membre éclairé Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Par défaut
    En ajax ca donnerait un truc comme ca (tu auras besoin de prototype.js):

    Tu appelles cette methode (lors d'un clic sur un bouton par exemple, ou un evenement on change):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function FormMachin_InsertMesDonnees(param_utiles){
     
        SimpleShow('waitdiv'); //waitdiv contient une gif animée tournante
     
    	if ( qqstests utiles ) {
    		  SimpleHide('waitdiv');
    			  return;
    		    }
    	new Ajax.Request(XMLC_BaseHRef+'MonXMLService_Insert',	{parameters: $H({'Champ1': $F('champ1'), etc...}
    			).toQueryString(),
    			onComplete: function(requester) {
    		     try{
    			   var data = requester.responseText; // ou requester.responseXML si tu retournes une grappe XML à parser avec plusieurs champs
     	                            $('MonNouvelID').value = data;
    			}   catch(e){
                           $('MonNouvelID').value= '-1'; }
    				SimpleHide('waitdiv');		      
    		  } 
    		  });   
     
    	}
    Note: $('champ1') c'est simplement un raccourcis de getElementById('champ1')
    F$('Champ1') est un GetValue('champ1')
    de meme que $H construit un tableau, le but étant de former la chaine champ1=tot&champ2=tataetc... sans s'embeter

    Une bonne pratique est de "binder" les évenements js en dehors du fichiers xsl de façon à bien différencier présentation et regles métiers!!:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Event.observe('Bouton1', 'click', FormMachin_InsertMesDonnees);
    ou
    Event.observe('champ1', 'blur', FormMachin_InsertMesDonnees);
    etc... ;)
    ton MonXMLService_Insert fait donc un simple SendResponse. L'id en retour est ensuite inseré dans un champ MonNouvelID qui peut a sont tour etre posté dans ton formulaire principale si c'est ton besoin.

    Concernant le partialUpdate je pensais effectivement à la méthode du body onload, qui fonctionnera aussi.

    Michael

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Par défaut
    Merci pour cette réponse
    ça fonctionne.... presque. En effet, je récupère toujours la même valeur. Je vais poursuivre mon investigation sur le sujet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/11/2005, 17h32
  2. Récupération du contenu d'un page avec SYS.UTL_HTTP
    Par squalito dans le forum Oracle
    Réponses: 1
    Dernier message: 09/10/2005, 06h57
  3. Modifier contenu d'une iframe
    Par castaka dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/06/2005, 15h20
  4. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  5. la récupération du contenu en pl/sql
    Par squalito dans le forum PL/SQL
    Réponses: 4
    Dernier message: 25/01/2005, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo