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 :

Trois sélections dépendantes : code javascript et php du 03ème Select


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Femme Profil pro
    juriste
    Inscrit en
    Janvier 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste

    Informations forums :
    Inscription : Janvier 2017
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Trois sélections dépendantes : code javascript et php du 03ème Select
    Bonjour tout le Monde

    Quelqu'un peut m'aider à résoudre un épineux pb sur un script appelant JQUERY ( Dependent select box) normalement fonctionnel à 80 %, je vous explique :
    je monte une recherche par cascade sur une BDD le 01 et 02 ème select fonctionnent bien mais pas le 03 ème, en effet ce dernier ne tient pas compte de ma sélection sur la 01 ère liste est affiche 02 type de résultats selon la mention sur javascript ex :

    1 - il affiche un seul resultat ( le 01er de la liste ) si :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      var aid = $(this).val();
    2 - il affiche + eurs résultats ( donnée du 01 Select mais aussi d'autres ) si :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var aid = $(this).text().trim();
    tel que vous le verrez en bas , il y a surement une erreur dans le code javascript et / ou ficher PHP de ce 03 ème select, Meri de me l'indiquer

    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
    <script type = "text/javascript">
    		 $(document).ready(function(){
    	     $('#suj').change(function(){
     
    				var aid = $(this).val();
    				if (aid){
    				  $.POST("data11.php",
    					{ suj : aid },
    					function(data) {
    						$('#titre').html(data);
     
    					});
     
    				 }
    				 else {
     
    					$('#publiv').html('<option>CHOIX OEUVRE</option>');
    				}
    			 });
     
            $('#titre').change(function(){
     
    				var aid = $(this).text().trim();
    				if (aid){
    				  $.POST("data22.php",
    					{ titre : aid },
    					function(data) {
    						$('#publiv').html(data);
    					});
     
    				 }
    				 else {
    					$('#publiv').html('<option>CHOIX EDITION</option>');
    				}
    			 });
     
    		 });
    	</script>


    01 SELECT
    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
    <select type= "text" name ="suj" id ="suj" style="width:130px; font-weight: bold; text-align:center; position: relative; right: -60px;" >
    <option value= "" >Choix sujet</option>
     	 <?php 
    		 mysqli_set_charset($conn,'utf8');//si jamais tu as des accents dans la table !
    		  $query =("SELECT 3_oeuv.suj FROM 3_oeuv GROUP BY 3_oeuv.suj");
    		  $result = mysqli_query ($conn, $query );
    		   while ( $row = mysqli_fetch_array( $result)){
     
     
    		 echo '<option value="'.$row['suj'].'"';
     
    	 if(isset($_POST['suj']) && $_POST['suj'] == $row['suj']) echo 'selected="selected"';
    	echo ">".$row['suj']."</option>'";
       }
    		 ?>	
     </select>
      <button type = " submit" name ="search" style = "font-weight: bold; font-size: 15px; width:55px; position: relative; right: -50px;">RECH</button>

    PHP , 2 ème Selct

    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
    <?php
    mysqli_set_charset($conn,'utf8');//si jamais tu as des accents dans la table !
    if(isset($_POST['suj']) && !empty ($_POST['suj'])){   
    	 $id = $_POST['suj'];
        $query =("SELECT * FROM 3_oeuv WHERE 3_oeuv.suj = '{$id}' GROUP BY 3_oeuv.titre");
    	if($result =mysqli_prepare ($conn, $query )){
    		mysqli_stmt_bind_param($result, 's', $id);
    		mysqli_stmt_execute($result);
    		$data=mysqli_stmt_get_result($result);
    		mysqli_stmt_store_result($result);
    		$count =mysqli_stmt_affected_rows($result);
     
    		if ($count >0){
    		   while ( $row = mysqli_fetch_array($data)){
    				echo '<option value="'.htmlspecialchars($row['titre']).'"';
    				 if(isset($_POST['titre']) && $_POST['titre'] == $row['titre']) echo 'selected="selected"';
    				echo ">".htmlspecialchars($row['titre']).'</option>';
    		   }
    		   mysqli_free_result($data);    
    		}
    		else {
    			   echo  '<option>Not Nom Availibal :'.$count.'</option>';
    		}
     
    		mysqli_stmt_close($result);
    	}
     }
     
     ?>

    03 eme Select

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <select type= "text" name ="publiv" id="publiv" style="width:190px;font-weight: bold; text-align:center; position: relative; right: 930px;">
    			 <option value="">Choix Edition</option>
    <?php 
     
    include 'data22.php'
     ?>
     </select>
     <button type = " submit" name ="submitt" style = "font-weight: bold; font-size: 15px; width:55px; position: relative; right: 1190px;">Rech</button>

    PHP , 3 ème Selct
    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
    <?php 
    if(isset($_POST['titre']) && !empty ($_POST['titre'])){   
    	 $ide = $_POST['titre'];
        $query =("SELECT * FROM 4_etat JOIN 3_oeuv ON 3_oeuv.id_oeuv = 4_etat.id_etat WHERE 3_oeuv.titre = '{$ide}' GROUP BY 4_etat.publiv");
    	if($result =mysqli_prepare ($conn, $query )){
    		mysqli_stmt_bind_param($result, 's', $ide);
    		mysqli_stmt_execute($result);
    		$data=mysqli_stmt_get_result($result);
    		mysqli_stmt_store_result($result);
    		$count =mysqli_stmt_affected_rows($result);
     
    		if ($count >0){
    		   while ( $row = mysqli_fetch_array($data)){
    				echo '<option value="'.htmlspecialchars($row['publiv']).'"';
    				 if(isset($_POST['publiv']) && $_POST['publiv'] == $row['publiv']) echo 'selected="selected"';
    				echo ">".htmlspecialchars($row['publiv']).'</option>';
    		   }
    		   mysqli_free_result($data);    
    		}
    		else {
    			   echo  '<option>Not Nom Availibal :'.$count.'</option>';
    		}
     
    		mysqli_stmt_close($result);
    	}
     }
    ?>

    Vue mon niveau assez bas en javascript et le besoin extrême de ce travail, toute proposition est la bien venue

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 844
    Points
    4 844
    Par défaut
    Bonjour,

    Quand tu fais ça var aid = $(this).text().trim();, là tu récupères TOUT LE TEXTE de la liste, y compris celui des <option>.

    Essaies de récupérer seulement sa valeur sélectionnée avec $(this).val() et supprime le GROUP BY 4_etat.publiv de la requête (seulement pour tester au cas ou il y'a plusieurs lignes ayant le même 4_etat_publiv).

    Attention, les requêtes qui utilisent les variables $_POST ne sont pas préparées !

  3. #3
    Membre à l'essai
    Femme Profil pro
    juriste
    Inscrit en
    Janvier 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste

    Informations forums :
    Inscription : Janvier 2017
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Cher Toufik :


    Je viens de suivre tes conseils, à savoir remettre, sur le 03 ème select, le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var aid = $(this) . val ();
    en supprimant le est ça semble marché

    il s'agit d'un essaie sur des Tables liés par la relation 1 -> 1- > 1 et non 1 à +eurs .

    je vais refaire la même chose avec d'autres table dont la relation est: 1 à +eurs -> 1 à +eurs ->1 à +eurs à savoir que ça n'a pas marché avant ( 03 ème select reprenant qu'une seule donné, la 01ère seulement)

    Merci pour tes conseils, j'espère que tu m'accompagnera dans d'autres blocage Javascript pour améliorer mon site

    Said

  4. #4
    Membre à l'essai
    Femme Profil pro
    juriste
    Inscrit en
    Janvier 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste

    Informations forums :
    Inscription : Janvier 2017
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Salut Toufik

    En effet comme je l'attendais la solution proposée semble marcher pour les tables ayant une relation 1 -> 1 -> 1 mais pas pour celle 1 à +eur .

    je pense qu'il faut inclure autrement le 03 ème select dans le JS ou dans le fichier PHP en lien pour qu'il tient en compte la donnée saisie dans le 01 selct (liste)

    Mais comment

    Mille merci pour ton aide

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/05/2009, 17h15
  2. Covertion d'un code javascript en php
    Par nrx2005 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 13/02/2009, 16h06
  3. Conversion d'un code javascript en php
    Par jazz3210 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 07/02/2009, 20h48
  4. Conversion d"un code javascript en php
    Par jazz3210 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/02/2009, 20h05
  5. [PHP-JS] Intégration code Javascript dans PHP
    Par tilou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/04/2006, 15h26

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