Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 18h36   #1
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
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 :
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.
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 08h17   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 08h44   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Citation:
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
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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 08h47   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Code :
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 09h00   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
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
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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 09h22   #6
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
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 :
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 :
var ps=$(response).find("p");
mais le résultat n'est pas mieux.
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 09h28   #7
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
précision : côté ASP, je retourne une List<String>.
Code :
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);
            }
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 09h36   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Code :
1
2
3
$.each(ps, function() {
    alert($this.text());
});
Citation:
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h42   #9
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
Même pas.
Il ne semble pas rentrer dans mon each.
Code :
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 :
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.
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h46   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Citation:
il serait plus intéressant de voir le code xml pour savoir comment l'exploiter ...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h58   #11
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Code :
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 12h06   #12
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
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 :
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 :
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.
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 12h31   #13
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
pour SpecFrog, mon XML est configuré comme cela au final :
Code :
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.
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 12h59   #14
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Code :
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
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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 14h53   #15
Invité régulier
 
Homme
Développeur .NET
Inscription : décembre 2011
Messages : 22
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 : 22
Points : 9
Points : 9
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 :
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.
jmatys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h59.


 
 
 
 
Partenaires

Hébergement Web