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

jQuery Discussion :

Manipulation des variables de callback


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut Manipulation des variables de callback
    Bonjour,

    J'essaie actuellement de construire un formulaire qui soit non-intrusif, c'est-à-dire qui marche avec ou sans JS activé. Pour cela, j'ai donc construit mon formulaire sans considérer JS du tout (traitements php donc).
    En ce qui concerne la partie Jquery, voici le code que j'ai ajouté :

    Code Jquery : 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
     
     
    $(document).ready(function(){
       $("#form").click(function(){
           $.ajax({
       type: "POST",
       url: "enregistrement/",
       data: "mail="+$("#mail").val()+"&numero="+$("#numero").val(),
       success: function(msg){
         var res = $(msg).find("#content");
         $("#result").html(res);
       }
     });
           return false;
       })
    });

    Vous l'avez compris, comme il s'agit d'un système non intrusif, la variable "msg" de la callback contient le code HTML complet de la page de réponse.
    Je cherche simplement à sélectionner le texte contenu dans la div avec l'id "content" (de la page de réponse), et à afficher cela dans la div avec l'id "result" (qui se trouve dans la page courante).

    Malgré la lecture de la doc, je n'arrive toujours pas à trouver les méthodes qui me permettent d'arriver à ce que je veux.

    Merci de votre aide,
    Arnaud.

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 291
    Par défaut
    Bonjour Warno,

    et http://api.jquery.com/text/.
    Cela ne t'aide pas ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    Salut,

    Merci de ta réponse, mais cela ne résout pas mon problème pour l'instant.
    En fait, là où je bloque, c'est dans le "post-processing" des données retournées.
    J'ai ma page HTML retournée via la variable data. Ensuite, je ne sais absolument pas comment faire pour pouvoir manipuler cette variable facilement : data.$("#content") ? $(this).$("#content") ? this.$("#content") ?
    (d'autant que je veux faire des traitement derrière en faisant des actions selon que la page retournée via AJAX est un message d'erreur ou un message de validation, mais ceci est une autre histoire)

    Bref, je galère sur ce petit bout de code depuis un moment, et je ne vois pas trop l'issue. La méthode text() ne m'aide pas trop en ce qui me concerne, puisque ça ne fait que mettre sous forme textuelle toute la page HTML que je retourne via AJAX.

    J'ai regardé ça et là sur le net, et la méthode load() m'a permis de charger le contenu de la div #content de ma page cible là où je voulais. Seulement voilà, le problème du "post-processing" reste entier : comment manipuler le fameux data (l'argument) d'une callback ? (que ça soit par load() ou par ajax() )

    Je vous donne mon bout de code actuel :
    Code Jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $(document).ready(function(){
     
       $("#form").click(function(){
            var data = {email: $("#email").val(), numero: $("#numero").val()};
            $('#form').load("enregistrement/ #content", data, function(data) {
               //Comment manipuler la variable data pour savoir
               //si elle contient une class .error ou .success ?
            });
     
            return false;
        });
     
    });

    Si vous avez des idées, je suis preneur !

    Arnaud.

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 291
    Par défaut
    Bonjour Warno,

    je vois que tu paniques un peu car tu es parti sur une autre méthode

    Alors pour ton 1er code en fait,

    j'aurai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    success: function(msg){
         var res = $(msg).find("#content").text();
         $("#result").html(res);
       }
    Pour ton 2ème code, je ne connaissais pas bien la méthode load. J'ai jeté un oeil. Dans la doc, il illustre le 3ème paramètre (callback).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('#form').load("enregistrement/ #content", data, function (responseText, textStatus, XMLHttpRequest) {
      $("#result").html(responseText);
    });
    Essaie un peu çà, dis les résultats que ça produit.

    A savoir : The function called when the ajax request is complete (not necessarily success).

Discussions similaires

  1. Formater et manipuler des variables binaires
    Par lcoulon dans le forum Débuter
    Réponses: 7
    Dernier message: 29/10/2011, 18h35
  2. Manipulation des variables
    Par dgwabo dans le forum Dev-C++
    Réponses: 1
    Dernier message: 30/03/2011, 09h00
  3. Manipuler des variables/valeurs
    Par ttone dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2008, 17h13
  4. Manipulation des variables.
    Par fred61 dans le forum C
    Réponses: 12
    Dernier message: 22/04/2007, 19h35

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