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 :

Traitement d'une requête [AJAX]


Sujet :

jQuery

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut Traitement d'une requête
    Bonjour,

    Je sais que ce genre de sujet existe déjà mais je n'ai pas trouvé de réponse satisfaisante. Concrètement, je fais une requête AJAX à un serveur de clés, qui me retourne une liste de résultats.

    Au début, j'utilisait XMLHttpRequest, mais comme le html renvoyé n'est pas valide XML, responseXML est vide, et je dois me contenter de responseText.

    Du coup j'essaie maintenant d'utiliser $.ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $.ajax( {
        type    :   "GET",
        url     :   "http://keyserver.gingerbear.net/pks/lookup?",
        data    :   "search=john.smith@gmail.com&fingerprint=on&op=index",
        dataType:   "html",
        success :   traiterResultat(htmlCode),
       error    :   function(resultat, statut, erreur){
                    },
    complete :   function(resultat, statut){
                    }
    } );
    Je voudrais que ma fonction traiterResultat parse le html renvoyé, en utilisant jquery, et construise un tableau dans une iframe comme ceci :
    Code html : 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
     
        <table>
        <thead> 
            <tr>
                <th>Action</th>
                <th>Bits<br/>Upload Date</th>
                <th>User ID<br/>Fingerprint</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><button type="button">Select this key</button></td>
                <td>1024D<br/>2013-03-13</td>
                <td>John Smith &lt;john.Smith@gmail.com&gt;<br/>E151 620D ACD0 3593 AA9E  8302 564B E6C7 4E60 BEA2</td>
            </tr>
        </tbody>
        </table>

    Le problème c'est que je n'arrive même pas à commencer à coder cette fonction, en particulier je ne sais pas comment parser la variable htmlCode avec jquery.

    Edit : pour avoir une idée du résultat de la requete ajax : http://keyserver.gingerbear.net/pks/...nt=on&op=index

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut
    Bonjour,

    J'ai avancé un peu..

    Dans un premier temps, je mets de côté ajax, et j'essaie de parser une page HTML dans laquelle j'ai copié collé le résultat d'une requête : http://keyserver.gingerbear.net/pks/...nt=on&op=index

    J'arrive presque à récupérer tout ce que je veux (il me manque juste la fingerprint) avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $(document).ready(function(){
        console.log("jQuery est prêt !");
        $('pre').each(function(){
            var htmlString = $(this).html();
            console.log("Key ID : "+/0x[a-z0-9]{16}/i.exec(htmlString));
            console.log("User : "+$(this).find('a:eq(1)').text());
            console.log("Bits : "+/[0-9]{4}[RD]/.exec(htmlString));
            console.log("Data : "+/[0-9]{4}-[0-9]{2}-[0-9]{2}/.exec(htmlString));
            console.log("Fingerprint : "+/Fingerprint=(.*)/.exec(htmlString));
        });
    });
    Maintenant j'aimerais effectuer ce traitement non pas sur une page statique, mais sur la variable qui contient le résultat de ma requête ajax, et là je bloque :

    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
    23
    24
    25
    26
    27
    28
    29
     
     $.ajax( {
            type    :   "GET",
            url     :   "http://keyserver.gingerbear.net/pks/lookup?",
            data    :   "search=john.smith@gmail.com&fingerprint=on&op=index",
            dataType:   "html",
            success :   function(resultat){
                            showMessages("*****AJAX : SUCCESS*****");
                                    // Cette instruction me permet d'afficher le résultat de la requête 
                                    console.log(resultat);
                            // Mais je n'arrive pas à parser le contenu de la variable resultat avec jquery 
                            $(resultat).ready(function() {
                                    $('pre',$(resultat).html()).each(function(){
                                        var htmlString = $(this).html();
                                        console.log("Key ID : "+/0x[a-z0-9]{16}/i.exec(htmlString));
                                        console.log("User : "+$(this).find('a:eq(1)').text());
                                        console.log("Bits : "+/[0-9]{4}[RD]/.exec(htmlString));
                                        console.log("Data : "+/[0-9]{4}-[0-9]{2}-[0-9]{2}/.exec(htmlString));
                                        console.log("Fingerprint : "+/Fingerprint=(.*)/.exec(htmlString));
                                    });
                            });
                        },
            error    :  function(resultat, statut, erreur){
                         //Blabla
                        },
            complete :  function(resultat, statut){
                               Blabla
                               }
        } );
    Quelqu'un pourrait-il m'éclairer svp ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut
    Résolu, en utilisant la fonction load de jquery, plutot que la fonction ajax. Je suppose que j'aurais pu m'en sortir avec $.ajax(), mais ça m'a grandement simplifié la vie. Le code :
    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
     
    $('#LOAD').load("http://keyserver.gingerbear.net/pks/lookup?","search=john.smith@gmail.com&fingerprint=on&op=index",function(resultat,aa,bb){
                $(resultat).ready(function() {
                    $('pre',$(resultat).html()).each(function(){
                       var htmlString = $(this).html();
                       console.log("Key ID : "+/0x[a-z0-9]{16}/i.exec(htmlString));
                       console.log("User : "+$(this).find('a:eq(1)').text());
                       console.log("Bits : "+/[0-9]{4}[RD]/.exec(htmlString));
                       console.log("Data : "+/[0-9]{4}-[0-9]{2}-[0-9]{2}/.exec(htmlString));
                       console.log("Fingerprint : "+/Fingerprint=(.*)/.exec(htmlString));
     
                    });
                });
            }
        );

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

Discussions similaires

  1. Traitement d'une requête POST
    Par Pas-Glop dans le forum Apache
    Réponses: 5
    Dernier message: 12/08/2010, 14h40
  2. tracer le traitement d'une requête
    Par subzero82 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 09/07/2008, 11h21
  3. cherche aide pour améliorer le traitement d'une requête
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/04/2008, 14h15
  4. Réponses: 3
    Dernier message: 28/02/2007, 18h46
  5. Réponses: 3
    Dernier message: 06/01/2006, 09h03

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