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 :

Afficher un lien et remplir l'auto-complétion


Sujet :

jQuery

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut Afficher un lien et remplir l'auto-complétion
    Bonjour,
    je souhaite afficher du html et remplir en dessous des champs pour l'auto-complétion.

    j'ai fais un petit test:

    je n'ai pas mis le bout de code mais lorsque que je tape 3 lettres,
    j'ai une light box qui apparaît et je souhaite afficher mes réponses dessus.

    le fichier qui appelle une recherche de mot clé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $.ajax({
       url:'ajax_motcle.php',
       dataType:'json',
       success:function(data){
         console.debug(data);
      }
    });
    ajax_motcle.php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $auto_compl = array("php","java","sql");//résultat d'une liste de mot clé par mysql
    echo "resultat sous forme de tableau,récupération de donnée mysql, ce sont des liens a cliqué";
    echo $json_encode($auto_comp);//tableau à récupérer pour l'auto complétion

    pour ce simple, comment je dois faire pour voir le résultat en cas de succès avec firebug?
    Est t'il possible d'afficher un résultat et de transmettre une tableau json pour le champs auto complété ?

    merci d'avance pour la réponse.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j'ai fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $.ajax({
        type :'POST',
        url : '/ajax_motcle.php',
        data: "test=ping ajax !",
        dataType:"json",
        success: function(retour,status){
            alert(retour);
        },
        error : function(status){
            alert(status.responseText);
        },
    });
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $json = array("php","java","mysql");
    echo "<h1>je suis du HTML</h1>";
    echo json_encode($json);
    ?>

    comment je fait pour juste récupérer $json sur la page qui appelle ajax_motcle ?

  3. #3
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Dans ton script PHP, tu fais un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<h1>je suis du HTML</h1>";
    donc ton retour n'est pas un format JSON correct et tu ne peux pas récupérer du JSON dans la réponse AJAX.
    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

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de ta réponse
    donc je ne peux pas mélanger du html et du json ...
    donc je dois procéder ainsi ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    header('Content-type: application/json');
    $html="je suis du html";
    $json = array("php","java","mysql",$html);
    echo json_encode($json);
    ?>
    pour avoir la liste des auto complétion,je dois me débrouillé à supprimer "$html" avec le javascript ?

  5. #5
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ensuite, tu peux mettre tout ce que tu veux dans ton JSON, mais il est préférable de l'organiser de façon logique, par exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    header('Content-type: application/json');
    $html="<h1>je suis du HTML</h1>";
    $json = array("liste" => array("php","java","mysql"), "html" => $html);
    $json = array("php","java","mysql",$html);
    echo json_encode($json);
    ?>
    Ici, la clé "html" contient du HTML (même si techniquement, ce n'est rien d'autre qu'une chaine) que tu peux retrouver facilement côté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    success: function(retour,status){
        console.log(retour.liste);
        console.log(retour.html);
    }
    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

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci ça fonctionne j'ai maintenant les 2

    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
    $.ajax({
        type :'POST',
        url : '/ajax_motcle.php',
        data: "test=ping ajax !",
        dataType:"json",
        success: function(retour,status){
            var autocomplete = retour.autoMotcle;
            var resultatHtml = retour.html;
            //alert(autocomplete);
            $("#find_cours").autocomplete({
                source : autocomplete,
            });
            $("#resultat_box").html("resultatHtml");
        },
        error : function(status){
            alert(status.responseText);
        },
    });
    j'ai le html et j'ai la liste des auto complétions,

    voici mon code entier
    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
    33
    34
    35
    36
    37
    38
    $("#find_filtre").on("change", function() {//changement du filtre
        if ($('#find_cours').val().length > 2){
            recherche();
        }
    });
    $("#find_cours").on("keyup", function() {//saisie de 3 lettre dans le champ recherche
        if ($('#find_cours').val().length > 2){
            recherche();
        }
    });
    //permet de fermer la fenêtre de recherche modal
    $("#modal_off").on("click", function() {
        $("#modal_recherche").css('display', 'none');
    })
    function recherche() {
        var motcle = $("#find_cours").val(); //recupération du mot cle
        var filtre = $('#find_filtre').val(); //filtre all par default
        $("#wait").css('display','block'); //faire apparaître le loading
        $("#modal_recherche").css('display','block');
        $("#find_cours").css('color','#046380');
        $.ajax({
            type :'POST',
            url : '/ajax_motcle.php',
            data: "test=ping ajax !",
            dataType:"json",
            success: function(retour,status){
                var autocomplete = retour.autoMotcle;
                var resultatHtml = retour.html;
                //alert(autocomplete);
                $("#find_cours").autocomplete({
                    source : autocomplete,
                });
                $("#resultat_box").html("resultatHtml");
            },
            error : function(status){
                alert(status.responseText);
            },
        });
    je souhaite demander une autre recherche si on sélectionne un autre mot de liste autocomplétion,
    est t'il bon d'ajouter un autre évenement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#find_cours").on(selectionner un autre mot de la liste, function() {//saisie de 3 lettre dans le champ recherche
        recherche();
    });

Discussions similaires

  1. Afficher le résultat d'une auto complétion dans un tableau
    Par smotte761 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/09/2011, 14h41
  2. afficher un lien en fonction d'une liste
    Par bigbabou dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/05/2006, 03h48
  3. [MySQL] Chercher des info dans une DB, et les afficher en lien
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/10/2005, 20h29
  4. Auto-complétion pour les mots clés Begin/End
    Par Alex Laforest dans le forum EDI
    Réponses: 2
    Dernier message: 21/09/2005, 22h26
  5. Réponses: 3
    Dernier message: 26/10/2004, 08h31

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