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 :

sélecteur suite à une requête ajax


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut sélecteur suite à une requête ajax
    Bonjour,

    j'ai un problème avec l'une de mes requêtes AJAX réaliser via Jquery.

    Dans mon premier fichier index.html, je réalise l'appel du script result.php comme 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
    16
    17
    <script type="text/javascript">
            $(document).ready(function() {
                $('#show_results').live('click', function() {
                    $.ajax({
                       type: "GET",
                       url: "result.php",
                       error:function(msg){
                         alert( "Error !: " + msg );
                       },
                       success:function(data){
                            $('#results').html(data);
                    }});
     
                    return false;
                });
            });
        </script>
    Le fichier result.php quand lui réalise tout simplement une boucle pour afficher x div avec une class identique pour tous.

    Cela pourrai très bien fonctionner mais par exemple si j'ai 10 div qui me sont retourné, ils apparaitrons en même temps, ce qui me plais moyennement.

    j'avais pensais faire dans success :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $('.maClass', data).each(function() {
         $(this).fadeIn(slow);
    });
    Pour effectuer un affichage en cascade des messages.

    Mais le sélecteur $('.maClass', data) ne fonctionne pas.

    Ma méthode est elle la bonne ?
    Merci d'avance pour votre aide.


    Couss

  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
    Par défaut
    Il faut préciser que data est supposé être du 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

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Bonjour,

    Merci de pour ton aide. Mais malheureusement cela viens pas de ça.
    J'avais essayer en précisant le type de réponse sans succès, je croit en plus que html est le type par défaut.

    Néanmoins j'ai réussi a contourner le problème en remplissant le div avec mes données retourné puis en cachant sont contenue comme 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
    16
    17
    18
    19
    20
    21
    <script type="text/javascript">
            $(document).ready(function() {
                $('#show_results').live('click', function() {
                    $.ajax({
                       type: "GET",
                       url: "result.php",
    		   dataType: 'html',
                       error:function(msg){
                         alert( "Error !: " + msg );
                       },
                       success:function(data){
                            $('#results').html(data);
                            $('#results .classTest').hide().each(function() {
                                $(this).fadeIn(3000);
                            });
                    }});
     
                    return false;
                });
            });
        </script>
    Je rencontre par contre toujours un problème avec l'affichage des div qui devrai se faire progressivement avec 3 sec intervalle les un après les autres.
    Ce qui n'est pas le cas ici tous les div s'affiche en 3sec.

    Couss

  4. #4
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Pour un affichage successif, on a déjà traité le cas ici:
    http://www.developpez.net/forums/d10...in-boucle-for/
    L'idée est d'utiliser la méthode de callback que tu peux appeller à la fin du fadeIn.

    Ce n'est pas exactement la même façon de lister les éléments que toi, mais le résultat désiré est le même. Tu peux donc t'inspirer de la solution.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    J'avais pensé utilise la fonction callback de fadeIn en retournant true pour passer à l'itération suivante du each() de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).fadeIn(3000).delay(5000, function() {return true;});
    Mais cela ne fonctionne pas.

    Et je rencontre un problème c'est que je connais pas à l'avance combien de div j'aurais et je n'est pas la possibilité d'utiliser d'id, seulement des classes.
    Donc pour la récursivité c'est impossible.

    Merci quand même

    Couss

  6. #6
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Citation Envoyé par Couscouss sensei Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).fadeIn(3000).delay(5000, function() {return true;});
    Mais cela ne fonctionne pas.
    ça c'est pas vraiment étonnant. Là ton callback, tu l'as mis sur delay() alors que je t'avais suggéré sur fadeIn().

    De plus le delay() là repousse l'action qui la suit. Mais vu qu'il n'y a rien derrière, ça tourne dans le vent. Pendant que le moteur sera déjà passé à l'itération suivante de ton each.

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

Discussions similaires

  1. Remplissage d'un div suite à une requête AJAX
    Par totojordi dans le forum Zend Framework
    Réponses: 4
    Dernier message: 19/04/2010, 16h38
  2. Réponses: 5
    Dernier message: 12/12/2009, 19h30
  3. selectionner un élément suite à une requête ajax
    Par nicko_73 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/11/2009, 17h41
  4. [AJAX] positionnement dans la page suite à une requête Ajax
    Par Ascella dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/12/2008, 19h10
  5. [MySQL] Condition suite à une requête SQL
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/01/2007, 14h25

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