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

AJAX Discussion :

[AJAX] Paramètre dans OPEN GET Ajax


Sujet :

AJAX

  1. #1
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut [AJAX] Paramètre dans OPEN GET Ajax
    Bonjour à tous les développeurs !

    J'ai un frameset, "encapsulant" un formulaire de contact :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <frameset rows="*" onbeforeunload="sendRequest()">
              <frame name="contenu" src="formulaire.php" frameborder="0" noresize>
         </frameset>

    ainsi que la fonction AJAX correspondante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function sendRequest(){
         XHR = getXMLHttpRequest()
         if (typeof(XHR) == "object"){
              XHR.open("GET", "php/destroy.php", false);
              XHR.send();
          }
    }
    Je vous ai fait grâce du code relatif à l'objet XMLHttpRequest, mais tout fontionne correctement.
    Le but à atteindre est de tuer une session quand on quitte le frameset (un peu comme en rando: On ramasse son garbage !)

    Quel est mon souci ?
    Si je veux paramétrer la fonction sendRequest en transmettant le non du programme à appeler '(ici : "php/destroy.php")
    la requête n'est plus exécutée !
    ---onbeforeunload="sendRequest("php/destroy.php")"
    ---function sendRequest(MON_URL) avec XHR.OPEN5 "GET", MON_URL, false); // ne fonctionne plus !

    Pourquoi ce fignolage ?... Je voudrais en réalité pouvoir réutiliser la fonction à un autre moment et pour soumettre une requête différente ; Notamment via "parent.sendRequest()" et ce à partir de la frame "contenu".

    D'avance merci, (j'ai déjà cherché un peu partout, mais en vain). Il y une subtilité...

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ouais enfin, c'est pas parce qu'on prend le temps de remettre en forme le message qu'on a que ça a à faire de chercher l'erreur qui s'y trouve.
    Un peu d'humilité je te prie.

    Mais bon voyons ce que ça donne avec d'autres balises CODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <frameset onbeforeunload="sendRequest("php/destroy.php")">
    C'est un peu plus clair ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut paramétrage OPEN GET Ajax
    Bonjour !

    Un peu de sel dans votre Eglise : C'est effectivement l'appel de la fonction qui "cloche"...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    onbeforeunload="sendRequest("php/destroy.php")"     // ne fonctionne pas !
    onbeforeunload="sendRequest(\"php/destroy.php\")"  // ne fonctionne pas !
    onbeforeunload="sendRequest('php/destroy.php')"      // YES !
    onbeforeunload=sendRequest("php/destroy.php")       // YES !
    En plus j'avais un ';' qui traînait dans mon code, cette 2nde erreur m'empêchant de faire des tests concluants.

    Désormais je peux faire toute requête, n'importe où dans ma chaine de traitement du formulaire par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.sendRequest('toute_transaction');
    Cordialement.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ouais enfin, je ne recommande pas le dernier,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onbeforeunload=sendRequest("php/destroy.php")  // en fait c'est pas top
    Je veux bien croire que des navigateurs l'acceptent, mais
    - d'une part ce n'est pas conforme à la syntaxe HTML, (si on décide de ne pas mettre de quotes à l'extérieur, on a d'autant moins le droit d'en mettre à l'intérieur,)
    - d'autre part au moindre espace, ça marche plus. Il vaut mieux toujours mettre des quotes et puis c'est tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut appel de Requête Ajax
    Bonsoir.

    "Et puis c'est tout." comme le disait Philippe LUCAS, l'entraineur de l'indisciplinée MANAUDOU.

    J'avais testé les 4 écritures (IE9 \ Window7), je n'ai pas poursuivi outre mesure.

    Cordialement, et merci de m'avoir indiqué le droit chemin (blague !)...

    Tous mes encouragements aux animateurs de ce site très PRO.

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour !
    Je n'avais pas tout testé (notamment le refresh), par ailleurs il y avait un dysfonctionnement \ FIREFOX.
    Après consultation de nombreux forums, il apparait qu'onbeforeunload ne doit pas être écrit n'importe-comment. J'ai donc retenu le code suivant qui convient à IE et FF, et il n'y plus d'argument dans la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <frameset rows="*" onbeforeunload="sendRequest()" >
         <frame name="contenu" src="formulaire.php" frameborder="0" noresize scrolling="no">
    </frameset>
    Ma fonction senRequest est devenue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function sendRequest()
              {
         XHR = getXMLHttpRequest();
         var argument = scriptName ;
         if (typeof(XHR) == "object")
              {                    
              XHR.open("GET", argument, false);
              XHR.send();
              }
              }
    Il me suffit d'alimenter la variable globale scriptName pour toute requête et à n'importe quel moment !

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

Discussions similaires

  1. Problème de paramètre dans OPEN GET ajax
    Par iakou dans le forum Développement Web en Java
    Réponses: 10
    Dernier message: 16/05/2014, 20h23
  2. [AJAX] Status dans une requete Ajax toujours nul
    Par Astarion dans le forum AJAX
    Réponses: 1
    Dernier message: 14/07/2010, 07h56
  3. Pagination et passage de paramètre dans un GET
    Par Marc22 dans le forum Langage
    Réponses: 7
    Dernier message: 16/03/2010, 16h15
  4. Passage de paramètre dans un fichier distant en javascript/ajax
    Par moook dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/06/2008, 13h51
  5. [AJAX] Source d'un GET Ajax
    Par lekunfry dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/09/2007, 15h44

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