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 :

Voir chaque élément d'un WebService ASP.NET


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut Voir chaque élément d'un WebService ASP.NET
    Bonjour,
    Je suis nouveau sur ce forum.

    Je travaille sur une plate-forme VisualStudio2010.
    J'ai créé un webservice qui me retourne une liste d'information (le nom de plusieurs plièces).

    Dans mon Javascript, j'ai écrit ceci :
    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
    function AfficherEquipements() {
                var txt = "";
                $.ajax({
                    type: "POST",
                    url: "../WebServices/Equipements.asmx/ListerEquipementsParPiece",
                    complete: function (xhr, result) {
                        if (result != "success") {
                            alert("Not Complete");
                            return;
                        };
                        var response = xhr.responseXML;
                        alert($(response).text());
                    }
                });
            }
    Lorsque j'exécute mon code, j'ai la fenêtre de message qui m'affiche l'ensemble des pièces. Donc de ce côté, ça fonctionne.
    Le résultat retournée sur le message alert est :
    Name="Pièce 1"Name="Piece 2"Name="Piece 3"

    Je voudrais maintenant dissocier chaque pièce, de sorte qu'il puisse m'afficher d'abord le message Pièce 1, puis le message Pièce 2, puis le message Pièce 3.

    Quelqu'un pourrait-il m'expliquer la méthode pour cela.

    Merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Le résultat retournée sur le message alert est :
    Name="Pièce 1"Name="Piece 2"Name="Piece 3"
    je ne vois pas comment un each pourrait fonctionner sur une chaine de ce type Beef ?

    Ton retour est mal formé et difficilement exploitable par js, hormis avec une expression régulière ?
    A moins que la description de ton retour ne sois pas exacte ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert($(response).text());
    La méthode text() renvoie le contenu sans les balises
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    le contenu ...
    quel interet de mettre
    en contenu d'une balise XML ?

    il serait plus intéressant de voir le code xml pour savoir comment l'exploiter ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    Bonjour et merci d'avoir transféré cette discussion dans un forum plus adéquat.

    Je suis désolé, mais je ne m'en sors pas avec le each.
    si je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var ps=$(response).find("Name");
    $.each(ps, function() {
        alert($this.text());
    });
    aucun message ne m'est retourné, donc il ne passe pas dans le each car il ne trouve rien.

    Où est mon erreur ?
    j'ai bien essayé côté serveur de renvoyer une réponse du type ;
    "<div><p>piece 1</p><p>piece 2</p><p>piece 3</p></div>" et mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ps=$(response).find("p");
    mais le résultat n'est pas mieux.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    précision : côté ASP, je retourne une List<String>.
    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
     
    try
                {
                    String schemin= @"C:\XML\";
     
                    List<String> MaListe = new List<String>();
                    // Récupération du fichier dees groupes
                    XDocument xDoc = XDocument.Load(System.IO.Path.Combine(schemin+ "TEMP", "groups.xml"));
                    XElement po = xDoc.Root;
                    IEnumerable<XElement> ls_element = po.Elements();
     
                    MaListe.Add("<div>");
                    foreach (XElement el in ls_element)
                    {
                        MaListe.Add("<p>" + el.Attribute("Name").Value.ToString() + "</p>");
                    }
                    MaListe.Add("</div>");
                    return MaListe;
                }
                catch (Exception e)
                {
                    Logs MyLog = new Logs();
                    MyLog.EcrireLog(DateTime.Now, "Exception", "Erreur Grp_Afficher_Equipements()", e.Message);
                    return (null);
                }

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $.each(ps, function() {
        alert($this.text());
    });
    aucun message ne m'est retourné
    Si, surement un message d'erreur du type "$this is undefined"...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    Même pas.
    Il ne semble pas rentrer dans mon each.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var ps = $(response).find("Name");
                        $.each(ps, function () {
                            alert("coucou");
                        });
    avec ça, il ne m'affiche jamais "coucou".
    ça veut donc dire qu'il ne trouve pas Name.

    Si ma réponse serveur se fait avec <div><p>piece 1</p>...</div> et que je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ps = $(response).find("Name");
    il ne me retourne toujours pas "coucou".

    je débute avec Ajax et jQuery, peut-être est-ce le format de ma réponse serveur qui n'est pas bonne, mais je ne vois pas en quoi.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    il serait plus intéressant de voir le code xml pour savoir comment l'exploiter ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    complete: function (xhr, result) {
        if (result != "success") {
            alert("Not Complete");
            return;
        };
        var response = xhr.responseXML;
        alert($(response).text());
    }


    Désolé d'être franc, mais tu comprends ce que tu écris ?
    Comment tu passes de $.ajax() à xhr.responseXML ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    Ce n'est pas sûr que je comprenne effectivement.
    Mais je m'autoforme (mal sans doute) en utilisant le livre d'Eric Sarrion "jQuery & jQuery UI" aux éditions Eyrolles qui est de cette année.

    Dans ce livre (page 187), il est mentionné pour la partie Requêtes serveur Ajax, un article sur Utiliser responseXML (avec certes du Php comme serveur).

    Le fichier action.php est celui-ci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    header("Content-Type:text/xml");
    $txt = "<div><p> Ceci estt la <b>réponse 1 </b>du serveur</p>" .
              "<p>Ceci est la <b>réponse 2</b> du serveur</p></div>";
    $txt = utf8_encode-$txt);
    echo $txt;
    ?>

    et le javascript est :
    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
    <script src=jquery.js></script>
    <script>
    $.ajax ({
        url : "action.php",
        complete : function (xhr, result)
        {
            if (result != "success") return;
            var response = xhr.responseXML;
            var ps = $(response).find("p");
            $.each (ps, function()
            {
                $("body").append("<p><i>" + $(this.text() + "</i></p>");
            });
        }
    });
    En soi, je comprends ce que veux faire le code.
    Mais je ne comprends pas pourquoi mon code ne fonctionne pas.
    A moins que l'exemple du livre ne fonctionne pas mieux. Je vais le tester.

  13. #13
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    pour SpecFrog, mon XML est configuré comme cela au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div>
        <p>piece 1</p>
        <p>piece 2</p>
        <p>piece 3</p>
    </div>
    par la suite, il y aura d'autres balises à l'intérieur des <p>, voire des attributs à ces <p>, mais j'essaie déjà de trouver une réponse à mon 1er problème.

    Merci pour votre aide.

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    response="<div><p>piece 1</p><p>piece 2</p><p>piece 3</p></div>"
    $(response).find('p').each(function(){alert($(this).text())})
    })
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    Merci à vous.
    Mon problème est résolu.
    J'ai pu voir que si je mets le dernier code de Spacefrog en dure, ça fonctionne, mais que via ma requête au serveur ça ne fonctionnait pas.
    Le type de retour ne semble pas être le même (mais je n'arrive pas à voir la différence.

    J'ai donc écrit ce 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
    $.ajax({
                    type: "POST",
                    url: "../WebServices/Equipements.asmx/ListerEquipementsParPiece",
                    contentType: "charset=utf-8",
                    dataType: "xml",
                    complete: function (xhr, result) {
                        if (result != "success") {
                            alert("Not Complete");
                            return;
                        };
                        var response = $(xhr.responseXML).text();
                        $(response).find('p').each(function () { alert($(this).text()) })                    
                    }
                });
    Et ça fonctionne.
    Grand merci à vous.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2010, 19h43
  2. Réponses: 0
    Dernier message: 17/04/2009, 12h03
  3. Consommer un webservice asp.net depuis soap::lite
    Par bleuerouge dans le forum Web
    Réponses: 0
    Dernier message: 11/01/2008, 15h17
  4. Détruire un élément en Jscript, créé dynamiquement en asp.net
    Par mappy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2006, 09h04

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