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 :

Contenu d'une div différent en fonction d'un menu déroulant


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 25
    Par défaut Contenu d'une div différent en fonction d'un menu déroulant
    Bonjour,

    Je me permets de vous écrire pour solliciter votre aide.
    Je vous explique :

    j'ai un tableau html.
    Sur chaque ligne de mon tableau j'ai des cellules et 2 menus déroulants.
    J'aimerai afficher dans une div (situé en haut du tableau) un contenu différent en fonction du menu déroulant ouvert.
    Sachant que le contenu est identique lorsqu'on ouvre les 2 menus déroulants de la même ligne.

    Voilà, j'ai fait des tests. On se rapproche de ce que j'aimerai obtenir.
    Mon souci maintenant est d'afficher dans la div "resultat" un contenu différent par ligne, et que je cherche via mes bases de données. Je pense que le plus efficace serait peut être de faire ça en ajax (et malheureusement je ne le maîtrise pas).
    Sachant que dans choix[2], le 2 est l'id qui sert dans ma requête à récupérer les données.

    Voici à quoi ressemble mon tableau

    http://jsbin.com/ihicuq/4/

    J'espère que c'est faisable.

    Merci d'avance pour votre aide

    Bonne journée


  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Bonjour,

    Oui c'est tout à fait faisable. Le code ressemblerait à ça :
    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
     
    jQuery(document).ready(function($){
    	$('#tab select').change(function(e){
    		//console.log('down');
     
          var id_select = $(this).closest('tr').index()+1;
          var selected = $(this).val();
          $.ajax({
            url:"ton url de requete ajax",
            data:{
              id:id_select,
              selected: selected
            }
            success: function(response){
              $('#resultat').html( "Sélection: "+response);	},
            error: function(xhr, message){
               console.error(message);
               $('#resultat').html("Erreur");
            }
          });
     
    });
    Il te faut coder la partie serveur qui récupère les paramètres de la requête (dans l'URL pour les requêtes GET) et renvoie les infos que tu souhaites en allant piocher dans ta BDD. La réponse serveur passera dans le callback success si tout va bien, dans la variable response

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 291
    Par défaut
    Bonjour,

    SylvainPV est tellement sympa qu'il fait presque tout le travail à ta place

    J'aurai juste dit de placer une fonction F1 sur l'événement onchange de chaque liste déroulante.
    Et de faire un appel AJAX dans cette fonction F1 avec la fonction ajax de jquery.

    Comme çà, tu aurais un peu cherché dans la doc jquery et chercher à te débrouiller d'après ces petits conseils.

    C'est bien de te pêcher un poisson mais c'est mieux de t'apprendre à pêcher

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 25
    Par défaut
    Bonjour,

    merci pour votre aide

    Malheureusement j'ai bien du mal à apprendre à pêcher

    Désolé, et malgré mes recherches, je bloque

    Je pense que je ne parviens pas à faire le lien entre mon fichier qui interroge ma base et le script.

    Mon fichier ressemble à ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    // ma requete mysql
     
    ....
     
    $swit= mysql_fetch_assoc($st);
    $response = $swit['nb'];
     
    ?>

    Est ce que je dois présenter le fichier sous forme de fonction ?

    et le script de ce type :

    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
    jQuery(document).ready(function($){
    	$('#tab select').change(function(e){
    		//console.log('down');
     
          var id_select = $(this).closest('tr').index()+1;
          var selected = $(this).val();
          $.ajax({
            url:"mon_lien.php?id=17&tab=194",
            data:{
              id:id_select,
              selected: selected
            }
            success: function(response){
              $('#resultat').html( "Sélection: "+response);	},
            error: function(xhr, message){
               console.error(message);
               $('#resultat').html("Erreur");
            }
          });
     
    });
    Merci d'avance pour votre aide


  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 : 54
    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
    Ton fichier PHP n'affiche rien à priori, donc le script JavaScript ne recevra aucune réponse... Fais au moins un echo de ce que tu souhaites renvoyer comme réponse.
    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 averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 25
    Par défaut
    Si je visualise mon fichier php directement, j'ai bien une réponse qui s'affiche :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    // ma requete mysql
     
    ....
     
    $swit= mysql_fetch_assoc($st);
    $response = $swit['nb'];
    echo $response;
     
    ?>

    mais rien sur le fichier d'origine avec le script javascript

  7. #7
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Essaie un echo "test"; dans ton script PHP pour voir si c'est l'appel AJAX ou la partie serveur qui ne fonctionne pas.

    Si c'est la partie Javascript, vérifie que ton sélecteur est correct pour ton HTML: $('#tab select')
    Ensuite, peux-tu utiliser les Developer Tools de Chrome (F12) ou Firebug sur FF pour mettre des breakpoints dans ton Javascript et regarder ce qui se passe ? Si tu ne connais pas, ce sont des outils de debug très complets qui te seront d'une grande utillité

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/02/2014, 19h02
  2. Réponses: 13
    Dernier message: 08/06/2012, 16h19
  3. [CSS] Centrer le contenu d'une Div
    Par bolo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/03/2006, 19h18
  4. actualiser le contenu d'une div
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 08/02/2006, 10h17
  5. [CSS] Décalage de contenu dans une div
    Par Onyx91 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/01/2006, 15h27

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