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 :

jQuery Autocomplete : Impossible d'afficher le résultat JSON


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut jQuery Autocomplete : Impossible d'afficher le résultat JSON
    Bonjour à tous,

    Ça faite 2 jours que je me casse la tête sur ce problème et je ne trouve aucune solution.
    J'aimerais faire un autocomplete en jQuery avec une source Ajax.
    Voici mon code client :
    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
     
    $(".txtNewLine").autocomplete({
                    source: function (request, response) {
                        $.ajax({
                            minLength: 3,
                            url: "Ajax.asmx/GetArt",
                            data: "{'pSearch':'" + request.term + "'}",
                            dataType: "json",
                            type: "POST",
                            contentType: "application/json; charset=utf-8",
                            success: function (data) {
                                response($.map(data.d, function (item) {
                                    return {
                                        label: item.label,
                                        value: item.value
                                    }
                                }))
                            },
                            error: function (result) {
                                alert('Erreur : ' + result.statusText);
                            }
                        });
                    }
                });
    Voici ce que retourne mon Ajax.asmx/GetArt avec un document.write(JSON.stringify(data)) dans le success: function (data) { :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"d":"[{\"label\":\"146167\",\"value\":\"935677\"},{\"label\":\"283\",\"value\":\"104279\"},{\"label\":\"35604\",\"value\":\"1070023H\"},{\"label\":\"75171\",\"value\":\"583Z438\"},{\"label\":\"150222\",\"value\":\"231385\"},{\"label\":\"159369\",\"value\":\"PC201\"}]"}
    Voici ce que retourne mon Ajax.asmx/GetArt depuis mon navigateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml version="1.0" encoding="UTF-8"?>
    <string xmlns="http://tempuri.org/">[{"label":"146167","value":"935677"},{"label":"283","value":"104279"},{"label":"35604","value":"1070023H"},{"label":"75171","value":"583Z438"},{"label":"150222","value":"231385"},{"label":"159369","value":"PC201"}]</string>
    Je n'ai pas d'erreur qui s'affiche.
    J'ai tout essayé, je ne sais plus quoi faire

    Merci d'avance

  2. #2
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Essaye de visualiser dans la console (onglet reseau ou xhr ) le retour de ton ajax
    tu peux aussi le faire par le code ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     success: function (data) { console.log(data); },
    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 !

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [object Object]
       {
          [functions]: ,
          __proto__: { },
          d: "[{"label":"146167","value":"935677"},{"label":"283","value":"104279"},{"label":"35604","value":"1070023H"},{"label":"75171","value":"583Z438"},{"label":"150222","value":"231385"},{"label":"159369","value":"PC201"}]"
       }

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "success" : function( data ){
      response( data.d );
    },

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Rien ne s'affiche

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Passer par $.map() n'est pas nécessaire si data.d contient déjà le bon array d'objets.

    Déjà demandé par SpaceFrog : Que donne un simple console.log( data.d ); ?

    Votre code jQuery UI est loin du code source de la démonstration : http://jqueryui.com/autocomplete/#remote

    Il est plus proche du code source de la démonstration pour le jsonp : http://jqueryui.com/autocomplete/#remote-jsonp

    Les démonstrations sont pour la version 1.11.4 de jQuery UI, si vous utilisez une version obsolète...

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"label":"146167","value":"935677"},{"label":"283","value":"104279"},{"label":"35604","value":"1070023H"},{"label":"75171","value":"583Z438"},{"label":"150222","value":"231385"},{"label":"159369","value":"PC201"}]
    J'utilise la version v1.11.4

    Je ne vois pas comment utiliser mon WebService (asmx) en tant que source avec le code de http://jqueryui.com/autocomplete/#remote

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par aloisio11 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"label":"146167","value":"935677"},{"label":"283","value":"104279"},{"label":"35604","value":"1070023H"},{"label":"75171","value":"583Z438"},{"label":"150222","value":"231385"},{"label":"159369","value":"PC201"}]
    Donc le contenu de "data.d" est correct.

    Citation Envoyé par aloisio11 Voir le message
    J'utilise la version v1.11.4
    Parfait !

    Citation Envoyé par aloisio11 Voir le message
    Je ne vois pas comment utiliser mon WebService (asmx) en tant que source avec le code de http://jqueryui.com/autocomplete/#remote
    Ce service ne peut pas donner la réponse en jsonp ?

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  9. #9
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Comment faire pour retourner en JSONP ?

    Voici mon WebService
    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
    30
    31
    32
    Imports System.Web
    Imports System.Web.Services
    Imports System.Web.Services.Protocols
    
    <System.Web.Script.Services.ScriptService()> _
    <WebService(Namespace:="http://tempuri.org/")> _
    <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
     Public Class Ajax
        Inherits System.Web.Services.WebService
    
        <WebMethod()> _
        Public Function GetArt(ByVal pSearch As String) As String
            Dim vRes As New List(Of ArtFourBis)
            Dim vArtFour As ArtFourBis
            Dim vDr As Data.SqlClient.SqlDataReader
    
            vDr = GetReader([MaRequette])
    
            While vDr.Read
                vArtFour = New ArtFourBis
    
                vArtFour.label = vDr("IdArtFour").ToString
                vArtFour.value = vDr("CodeFour").ToString
    
                vRes.Add(vArtFour)
            End While
            vDr.Close()
    
            Return New System.Web.Script.Serialization.JavaScriptSerializer().Serialize(vRes)
        End Function
    End Class

  10. #10
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    J'ai laissé tombé le JSON et je vais y faire en XML

    Voici donc mon nouveau 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
    16
    17
    18
    $(".txtNewLine").autocomplete({
    				source: function (request, response) {
    					$.ajax({
    						type: "GET",
    						url: "Ajax/GetArtFour.aspx?s=" + request.term,
    						dataType: "xml",
    						success: function (xmlResponse) {
    							var data = $("Resultat", xmlResponse).map(function () {
    								return {
    									value: $("IdArtFour", this).text(),
    									id: $("CodeFour", this).text()
    								};
    							});
    							response(data);
    						}
    					});
    				}
    			});
    La page Ajax/GetArtFour.aspx?s= retourne cela au format XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
    <Resultat>
    	<ArtFout>
    		<IdArtFour>146167</IdArtFour>
    		<CodeFour>935677</CodeFour>
    	</ArtFout>
    	<ArtFout>
    		<IdArtFour>283</IdArtFour>
    		<CodeFour>104279</CodeFour>
    	</ArtFout>
    </Resultat>
    Le problème c'est que ça m'affiche tous les IdArtFour sur une seule ligne au lieu d'avoir 2 lignes (dans cet exemple).

    Des idées ?

    Merci d'avance

  11. #11
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Je progresse :-)
    Dernier problème : Je n'arrive pas a passer les paramètres du champs de recherche.

    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
    $(".txtNewLine").autocomplete({
    				source: function (request, response) {
    					$.ajax({
    						type: "GET",
    						url: "Ajax/GetArtFour.aspx",
    						data: "s=" + request.term,
    						dataType: "xml",
    						minLength: 3,
    						success: function (xmlResponse) {
    							var data = $("ArtFour", xmlResponse).map(function () {
    								return {
    									value: $("IdArtFour", this).text(),
    									id: $("CodeFour", this).text()
    								};
    							});
    							response(data);
    						}
    					});
    				}
    			});
    Si je tape dans le champs "PC201" je n'ai aucun résultat.
    Par contre si au lieu de data: "s=" + request.term, je mets data: "s=pc201", j'ai mes 5 résultats.

    Je comprends pas là ...

Discussions similaires

  1. [PostgreSQL] [pg_fetch_assoc] Impossible d'afficher les résultats d'un Select
    Par khemdyr dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/07/2015, 14h39
  2. [PDO] PDO et class pour la connexion : impossible d'afficher les résultats
    Par neovea dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 25/02/2013, 14h35
  3. [Yahoo UI] [YUI 3] [Autocomplete] Faire afficher les résultats manuellement
    Par FrankOVD dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 28/04/2011, 20h32
  4. [JQuery] Autocomplete, du mal avec Json
    Par supertino7 dans le forum jQuery
    Réponses: 4
    Dernier message: 21/09/2009, 18h25
  5. [MySQL] Impossible d'afficher le résultat
    Par KOUTO dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2007, 19h01

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