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 :

Affichage du résultat des select ajax [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut Affichage du résultat des select ajax
    Bonjour,

    Je souhaite afficher dans mon div le résultat de mes mes select liés. Je remercie encore almoha pour son aide à propos de ceux là.

    Voici le code actuel de l'ajax :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    $(document).ready(function() {
    	var $Carosserie = $('#Carosserie');
    	var $Marque = $('#Marque');
    	var $Modele = $('#Modele');
     
    	// chargement de la liste de localité un
    	$.ajax({
    		url: 'liste.php',
    		data: 'go', // on envoie $_GET['go']
    		dataType: 'json', // on veut un retour JSON
    		success: function(json) {
    			$.each(json, function(index, value) {
    				// pour chaque noeud JSON
    				// on ajoute l option dans la liste
    				$('#Carosserie').append('<option value="'+ index +'">'+ value +'</option>');
    			});
    		}
    	});
     
    	// à la sélection de la localité un dans la liste
    	$Carosserie.on('change', function() {
    		var val = $(this).val(); // on récupère la valeur de la localité un
    		if(val != '') {
    			$Marque.empty(); // on vide la liste de localité deux
    			$Marque.append('<option value="">Marque</option>');
     
    			$.ajax({
    				url: 'liste.php',
    				data: 'Carosserie='+ val, // on envoie $_GET['localite_un']
    				dataType: 'json',
    				success: function(json) {
    					$.each(json, function(index, value) {
    						$Marque.append('<option value="'+ index +'">'+ value +'</option>');
    					});
    				}
    			});
    		}
    		else {
    			$Marque.empty();
    			$Marque.append('<option value="">Marque</option>');
    			$Modele.empty(); // on vide la liste de localité deux
    			$Modele.append('<option value="">Modele</option>');
    		}
    	});
     
    	// à la sélection de la localité deux dans la liste
    	$Marque.on('change', function() {
    	var marque = $(this).val(); // on récupère la valeur de la marque
            var carosserie = $('#Carosserie option:selected').val()// on récupère la valeur de la carrosserie => id Carosserie avec une majuscule
     
    		if(marque != '') {
    			$Modele.empty(); // on vide la liste de localité trois
    			$Modele.append('<option value="">Modele</option>');
     
    			$.ajax({
    				url: 'liste.php',
    				data: { Marque: marque, Carosserie: carosserie },// // on envoie $_GET['localite_deux']
    				dataType: 'json',
    				success: function(json) {
    					$.each(json, function(index, value) {
    						$Modele.append('<option value="'+ index +'">'+ value +'</option>');
    					});
    				}
    			});
    		}
    		else {
    			$Modele.empty();
    			$Modele.append('<option value="">Modele</option>');
    		}
    	});
    });
    Le coté php :
    Code php : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php  
     
    // Vérification des paramètres d'accès au fichier liste.php
    if(isset($_GET['go']) || isset($_GET['Carosserie']) || isset($_GET['Marque'])) {
    	// connexion à la base de données
    	try {
    		$bdd = new PDO('mysql:host=localhost;dbname=Autotransaction', 'root', '');
    	} catch(Exception $e) {
    		exit('Impossible de se connecter à la base de données.');
    	}
    		$json = array();
     
    	if(isset($_GET['go'])) {
    		// requête qui récupère les localités un
    		$requete = "SELECT DISTINCT(Carosserie) FROM autotran ";
    		// exécution de la requête
    		$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
    		// Création de la liste
    		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
    			// je remplis un tableau et mettant l'id en index
    			$json[$donnees["Carosserie"]][] = utf8_encode($donnees["Carosserie"]);
    		}
    	}
    	elseif(isset($_GET['Carosserie'])&& !isset($_GET['Marque'])) {//modif ici
    		// requête qui récupère les localités un
    		$requete = "SELECT DISTINCT(Marque) FROM autotran WHERE Carosserie = '".$_GET['Carosserie']."' ";
    		// exécution de la requête
    		$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
    		// Création de la liste
    		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
    			// je remplis un tableau et mettant l'id en index
    			$json[$donnees["Marque"]][] = utf8_encode($donnees["Marque"]);
    		}
    	}
    	elseif(isset($_GET['Marque']) && isset($_GET['Carosserie'])) {//et ici
    		// requête qui récupère les localités un
    		$requete = "SELECT DISTINCT(Modele) FROM autotran WHERE Marque = '".$_GET['Marque']."' AND Carosserie = '".$_GET['Carosserie']."'";
    		// exécution de la requête
    		$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
    		// Création de la liste
    		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
    			// je remplis un tableau et mettant l'id en index
    			$json[$donnees["Modele"]][] = utf8_encode($donnees["Modele"]);
    		}
    	}
    	 // envoi du résultat au success
    	echo json_encode($json);
    }
     
    ?>

    Et enfin le html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <select id="Carosserie" onchange="submit();???????????(this.value)">
            <option value="">Catégories</select>
    </select> 
    <select id="Marque" >
            <option value="">Marque</select>
    </select> 
    <select id="Modele">
            <option value="">Modele</select>
    </select>
     
    <div id="resultat"></div>

    Ne comprennant pas tout à ajax, je solicite votre aide et vous remercie d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Par défaut
    je reviens vers vous car j ai un peu avancé sur mon probleme, j arrive désormais a afficher le resultat quand je selectionne dans mon 1 er select, mais je bloque pour afficher les autres

    voila comment j ai procedé pour le moment

    html
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <script language="javascript">
     
        function MAJ_tableau_articles()
      { 
      var a =  document.getElementById('Carosserie').value;
      var b =  document.getElementById('Marque').value;
      var c =  document.getElementById('Modele').value;
     
      var w =  document.getElementById('Marque').selectedIndex;
      var x =  document.getElementById('Marque').options[w].text;
     
     
     
     
     
    		  document.getElementById('result').src="principal.php?Carosserie="+encodeURIComponent(a)+"&Marque="+encodeURIComponent(b);
     
     
     
      }
     
     
     
      </script>
     
        </head>
        <body>
            <form name="form" method=GET action="principal.php" TARGET="result" >
     
                  <select id="Carosserie" name="Carosserie" onchange="MAJ_tableau_articles();">
                  	<option value="">Catégories</select>
                  </select> 
     
                  <select id="Marque" name="Marque">
                  	<option value="">Marque</select>
                  </select>
     
                  <select id="Modele" name="Modele">
                  	<option value="">Modele</select>
                  </select>
     
            </form>
     
            <iframe id="result" src="http://localhost/autotran/liste_dynamique/principal.php?action=page" name="result" width=900 height=800 frameborder="0" ></iframe>
     
     
     
     
        </body>
    </html>
    mon php en passant par un generateur de template

    Code php : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
     //traitement pour la selection d une categorie
            	 if(isset($_GET['Carosserie']))
     
            	 {
     
     
                                        //crÚation un nouvel objet tbs
                                        $tbs = new clsTinyButStrong;
     
                                        //modÞle html dynamique Ó utiliser
                                        $tbs -> LoadTemplate("page_annonces.php"); 
     
                                        //crÚation de la requete
                                       $requete = "SELECT * FROM autotran
                                        where Carosserie='".$_GET['Carosserie']."'";
                                        echo $requete;
     
     
                                 //execute la requete,recupere les resultats et fusionne avec le modele html
                                        $tbs -> MergeBlock('blk',$connect,$requete);
     
                                        //affiche le fichier html
                                        $tbs -> Show(); 
     
                   }
    if(isset($_GET['Carosserie'])&& !isset($_GET['Marque']))
                   {
                    //crÚation un nouvel objet tbs
                                        $tbs = new clsTinyButStrong;
     
                                        //modÞle html dynamique Ó utiliser
                                        $tbs -> LoadTemplate("page_annonces.php"); 
     
                                        //crÚation de la requete
                                       $requete = "SELECT * FROM autotran
                                       WHERE Marque = '".$_GET['Marque']."' AND Carosserie = '".$_GET['Carosserie']."'";
                                        echo $requete;
     
     
                                 //execute la requete,recupere les resultats et fusionne avec le modele html
                                        $tbs -> MergeBlock('blk',$connect,$requete);
     
                                        //affiche le fichier html
                                        $tbs -> Show();
     
     
     
     
                   }

    mon soucis actuelle est que je ne sais pas comment faire coté script pour que ca prenne en compte le select 1 et 2 et 3
    coté php je me debrouille mais pas en ajax

    merci de votre aide

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

Discussions similaires

  1. [MySQL] Mauvais affichage du résultat des rêquetes
    Par Jéjé34 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/03/2014, 12h44
  2. [MySQL] optimisation affichage du résultat d'un select
    Par guiguimouk dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2008, 10h26
  3. affichage du résultat des requêtes
    Par Bogs dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/04/2008, 10h55
  4. Réponses: 2
    Dernier message: 17/05/2007, 00h22
  5. Réponses: 10
    Dernier message: 13/02/2006, 15h29

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