Affichage des données issues de 2 listes déroulante dépendan

Fermé
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 - 23 déc. 2021 à 09:18
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 - 25 déc. 2021 à 11:49
Bonsoir chers tous,
je souhaiterai obtenir de l'aide auprès des expérimentés que vous êtes.
Après avoir quelques tutos et échanges sur le les forums, j'ai réussi à écrire un code qui permet à partir d'une première liste déroulante d'alimenter un second qui dépend entièrement de la première.
je bute de quelques semaines sur le fait d'importer les données depuis une table grâce à une sélection dans la second liste. Merci d'avance

<?php
// Fichier entête
require_once("entete.php");

// TRAITEMENT DU FORMULAIRE EQUIPE TERRAIN (si posté)
if( isset($_POST['choix_equipe']) )
{
$choix_equipe = $_POST['choix_equipe']; // choix fait
} else {
$choix_equipe = -1;
}

// TRAITEMENT DU FORMULAIRE (si posté)
if( isset($_POST['choix_cluster']) )
{
$choix_cluster = $_POST['choix_cluster']; // choix fait
} else {
$choix_cluster = -1;
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="jquery-1.11.3-jquery.min.js"></script>
<link rel="stylesheet" href="style.css" type="text/css" />
<title>PNRSS <?php print($userRow['user_email']); ?></title>
</head>

<body>

<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>

</div>
<div class="pull-left"><img src="images/logo-aigf.png"></div>
<div id="navbar" class="navbar-collapse collapse">
<h3 class="text-center">
PROGRAMME NATIONAL DE RECENSEMENT DES SITES ET STATIONS
</h3>
<ul class="nav navbar-nav navbar-right">

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-user"></span> Utilisateur: <?php echo $userRow['user_email']; ?> <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="profile.php"><span class="glyphicon glyphicon-user"></span>  Profile</a></li>
<li><a href="logout.php?logout=true"><span class="glyphicon glyphicon-log-out"></span> Déconnection</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>


<div class="clearfix"></div>


<div class="container-fluid" style="margin-top:80px;">

<div class="container">

<label class="h5">Bienvenue : <?php print($userRow['user_name']); ?></label>
<hr />

<h3 align="center">COLLECTE DES DONNEES DU PNRSS</h3>
<hr />
<br/>
<div>
<!-- Liste deroulante connection db -->

<!-- Liste déroulante des equipes -->
<form method="post" action="liste_equipe.php">

<select name="choix_equipe" class="col-lg-3">
<option value="-1"<?php if($choix_equipe==-1){ echo ' selected="selected"'; } ?>>-- Choisissez -- </option>
<?php

// connexion BD
$sql=$pdo = new PDO('mysql:host=localhost;dbname=dblogin' ,'root','' );
$sql = "SELECT EQUIPE_TERRAIN FROM tampon GROUP BY EQUIPE_TERRAIN";
// ----------------
// PREPARATION ET EXECUTION DE LA REQUETE
$stmt_equipe = $pdo->prepare($sql);
$stmt_equipe->execute();
// ----------------
while( $equipe = $stmt_equipe->fetch() ) // on récupère une ligne à la fois
{
?>
<option value="<?php echo $equipe['EQUIPE_TERRAIN']; ?>"

<?php

if($choix_equipe==$equipe['EQUIPE_TERRAIN'])
{ echo ' selected="selected"'; }
?>>
<?php echo $equipe['EQUIPE_TERRAIN']; ?></option>
<?php

}
// ----------------
?>
</select>
<input type="submit" value="Valider" />

</form>

<!-- FIN première liste déroulante-->



<!-- DEBUT deuxième liste déroulante-->


<?php
// -----------------------------------
// AFFICHAGE du résultat (si on a fait un choix)
if($equipe != -1)
{
?>
<p>Vous avez sélectionné : <?php echo $equipe; ?></p>

<select class="col-lg-3" name="choix_cluster">
<option>--- Selectionnez un cluster ---</option>
<?php

// on peut maintenant AFFICHER la liste des cluster de équipe

$sql = "SELECT DISTINCT CLUSTER FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe ";
// ----------------
// PREPARATION ET EXECUTION DE LA REQUETE
$stmt_cluster = $pdo->prepare($sql);
$stmt_cluster->execute( array(':choix_equipe' => $choix_equipe) );

?>
<!-- deuxième liste déroulante-->



<?php
// ----------------
while( $choix_cluster = $stmt_cluster->fetch() ) // on récupère une ligne à la fois
{ echo "<option value=" . $choix_cluster['CLUSTER'] . "'>". $choix_cluster['CLUSTER']."</option>";
}
}
?>










</div>
<br/>
<br/>

</div>



</div>

</div>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>
</html>
A voir également:

8 réponses

jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732
24 déc. 2021 à 23:09
Regarde le if ligne 81 puis ta boucle ligne 177
Ne vois-tu pas que tu as utilisé le même nom de variable ?
1
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732
23 déc. 2021 à 09:42
Bonjour,

Tu dis avoir un problème .. sans expliquer quoi ....

Quoi qu'il en soit, ton code pourrait ressembler à un truc du genre:

<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);
//---------------------------------------------------------------------------//
//Connexion propre à la bdd
// voir : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
//---------------------------------------------------------------------------//
try{
  $bdd = new PDO('mysql:host=localhost;dbname=dblogin' ,'root','' );
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

//---------------------------------------------------------------------------//
//découpage du code en "fonctions"
//---------------------------------------------------------------------------//
  function getListeEquipeTerrain(){
    global $bdd;
    $sql = "SELECT EQUIPE_TERRAIN FROM tampon GROUP BY EQUIPE_TERRAIN";
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute();
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit:
    }
  }
  
  function getCluster($choix_equipe){
    global $bdd;
    $sql = "SELECT DISTINCT CLUSTER FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe ";
    $datas = [':choix_equipe'=>$choix_equipe];
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute($datas);
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit:
    }
  }
  
  //---------------------------------------------------------------------------//

	// Fichier entête 
	require_once("entete.php");
	
	// TRAITEMENT DU FORMULAIRE EQUIPE TERRAIN (si posté)
	if( isset($_POST['choix_equipe']) )	{
		$choix_equipe = $_POST['choix_equipe']; // choix fait
	} else {
		$choix_equipe = -1;
	}	

	// TRAITEMENT DU FORMULAIRE (si posté)
	if( isset($_POST['choix_cluster']) )	{
		$choix_cluster = $_POST['choix_cluster']; // choix fait
	} else {
		$choix_cluster = -1;
	}	

 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="jquery-1.11.3-jquery.min.js"></script>
<link rel="stylesheet" href="style.css" type="text/css"  />
<title>PNRSS <?php print($userRow['user_email']); ?></title>
</head>

<body>

<nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
         
        </div>
		<div class="pull-left"><img src="images/logo-aigf.png"></div>
        <div id="navbar" class="navbar-collapse collapse">
          	<h3 class="text-center">
            PROGRAMME NATIONAL DE RECENSEMENT DES SITES ET STATIONS 
         	</h3>
          <ul class="nav navbar-nav navbar-right">
            
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
			  <span class="glyphicon glyphicon-user"></span> Utilisateur: <?php echo $userRow['user_email']; ?> <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="profile.php"><span class="glyphicon glyphicon-user"></span>  Profile</a></li>
                <li><a href="logout.php?logout=true"><span class="glyphicon glyphicon-log-out"></span> Déconnection</a></li>
              </ul>
            </li>
           </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>


    <div class="clearfix"></div>
    	
    
<div class="container-fluid" style="margin-top:80px;">
	
    <div class="container">
    
    	<label class="h5">Bienvenue : <?php print($userRow['user_name']); ?></label>
        <hr />
        
        <h3 align="center">COLLECTE DES DONNEES DU PNRSS</h3>
        <hr />
       	<br/>
		<div>							
			<!-- Liste déroulante des equipes -->
			<form method="post" action="liste_equipe.php">
				
				<select name="choix_equipe" class="col-lg-3">
				<option value="-1"<?php if($choix_equipe==-1){ echo ' selected="selected"'; } ?>>-- Choisissez -- </option>
				<?php
					$arrEquipes = getListeEquipeTerrain();
          foreach($arrEquipes as $equipe ) {
            $selected = $choix_equipe==$equipe['EQUIPE_TERRAIN'] ? ' selected="selected"' : "";
            echo '<option value="'.$equipe['EQUIPE_TERRAIN'].'" '.$selected.'>'.$equipe['EQUIPE_TERRAIN'].'</option>';	
          }            
        ?>
				</select>
				<input type="submit" value="Valider" />				
			</form>				
			<!-- FIN première liste déroulante-->

			<!-- DEBUT deuxième liste déroulante-->			
			<?php
			// -----------------------------------
			// AFFICHAGE du résultat (si on a fait un choix)
			if($equipe != -1) { 
			?>
        <p>Vous avez sélectionné : <?php echo $equipe; ?></p>
			
        <select class="col-lg-3" name="choix_cluster">
          <option>--- Selectionnez un cluster ---</option>
			<?php
          $arrCluster = getCluster($choix_equipe);
          foreach( $arrCluster as $choix_cluster ){ 
            echo "<option value=" . $choix_cluster['CLUSTER'] . "'>". $choix_cluster['CLUSTER']."</option>";
          }   
			} 				 
			?> 
								
			</div>
		<br/>
		<br/>
		
		</div>
  
    </div>

</div>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>
</html>


Il y aurait encore des choses à améliorer ... comme par exemple éviter de travailler avec les "noms" de tes équipes ou des cluster .. mais utiliser leurs ID serait plus fiable et plus efficace..

Pour le reste, je t'invite à lire ( et à appliquer dans tes prochains codes) les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et là
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

PS: quand tu postes du code sur le forum, merci de préciser dans les balises, le langage concerné.
ça permet d'avoir la coloration syntaxique et la numérotation des lignes ( comme le code que je t'ai mis)
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code


PS² : En général, pour faire des listes liées on utilise le javascript et l'ajax.. ça évite de recharger la page...
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
23 déc. 2021 à 10:41
Merci Jordan45 pour le temps que vous consacré à mon souci.
en effet, j'ai pas bien décrit le problème et j'en suis désolé. Il s'agit d'afficher les données d'une table à travers deux listes déroulantes liées.
j'arrive à extraire les données pour la première et la deuxième liste déroulante . Mon soucis est que j'arrive pas à afficher mon tableau qui est le résultat des deux valeurs choisis dans les listes déroulantes.

Merci encore pour l'orientation, et les liens vers les tutos. Je suis pas trop à l'aise avec javascript et ajax, voila pourquoi j'ai préféré résoudre ce soucis avec seulement du PHP
0
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732
23 déc. 2021 à 10:51
quel tableau ??
Avec quelle requête SQL ?

Je pense qui'il nous manque des infos ...

A noter que si tu veux pouvoir, après avoir selectionné un cluster, faire une nouvelle requête qui va chercher des données... mettre ton select de cluster également dans un <form> pour pouvoir ensuite récupérer la valeur en php .. (comme pour ta première liste )
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
23 déc. 2021 à 11:10
oui oui en fait j'ai merdé, j'ai pas posté tout le code .
voici donc la suite du code qui devrait me permettre d'afficher les valeurs de ma table
voici la portion de code qui ne fonctionne pas
 <form method="post">
			<input type="submit" value="Valider" name="submit" />
			
			<?php
			// récupération des variables 
			$eqt = !empty($_POST['choix_equipe']) ? $_POST['choix_equipe'] : NULL;
			$clt = !empty($_POST['choix_cluster']) ? $_POST['choix_cluster'] : NULL;
			
			if($eqt && $clt)
			
			{
			// préparation de la requête 			
			$sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :eqt AND CLUSTER = :clt ";
  			$params = array(  ':eqt' => $eqt ,':clt' => $clt );
					
			try{
    			$req = $pdo->prepare($sql);
    			$req->execute($params);
				$donne = $req->fetchAll(PDO::FETCH_ASSOC);
				var_dump($donne);
				
  			   }
			catch (Exception $e){
				
				 echo "<br> Requete :".$sql;
				 echo "<br> Params :<br>";
				 print_r($params);
			   }
			}
			
						
			?>

une illustration en image
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
Modifié le 23 déc. 2021 à 15:43
Apres quelques modifs et pris en compte de vos observations

j'ai créé cette fonction calquant le votre
function getAffichageListe($data, $datass){
    global $bdd;
    $sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe AND CLUSTER = :choix_cluster ";
    $data = [':choix_equipe'=>$choix_equipe];
 $datass = [':choix_cluster'=>$choix_cluster];
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute($data,$datass);
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
  }


avec deux paramètres

mais lorsque j'effectue ce traitement :

<?php 
     $arrAffichage = getAffichageListe($choix_equipe,$choix_cluster);
     foreach($row as $arrAffichage ) { 
      echo $row['EQUIPE_TERRAIN'];
     }
     
     ?>


il m'affiche ces erreurs :


aide moi stp . Merci
0
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732
Modifié le 23 déc. 2021 à 15:59
getAffichageListe($data, $datass){

Ce n'est pas data et datass que tu dois passer en paramètres mets les deux variables choix équipé choix cluster
0
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732 > jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025
23 déc. 2021 à 16:20
Ah.. et puis... c'est quoi cette variable $datass ?? je n'avais pas vu ....
Tu sais ce que c'est un array associatif ???

function getAffichageListe($choix_equipe, $choix_cluster){
    global $bdd;
    $sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe AND CLUSTER = :choix_cluster ";
    $data = [':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster];
 try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute($data,);
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
}
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 > jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025
23 déc. 2021 à 16:21
Non mais je vais lire des tutos sur les tableaux associatifs
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 > jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025
24 déc. 2021 à 13:54
Bonjour jordan45
Joyeux Noël au passage.

j'ai lu quelques tuto sur les tableau associatif, mais bien avant de pouvoir les utiliser j'ai cette erreur :


apres des recherches sur la nature de cette erreur, qui m'oriente vers ce code :
function getAffichageListe($choix_equipe, $choix_cluster){
    global $bdd;
    $sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe AND CLUSTER = :choix_cluster ";
    $data = [':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster];
 try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute(array($data));
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
}


et l'appelle de cette fonction :

<?php 
			  
			  $arrAffichage = getAffichageListe($choix_equipe,$choix_cluster);
			  foreach($arrAffichage as $arrAffichage ) { 
				  var_dump($arrAffichage);
			  }
			  
			  
			  ?>


j'ai beau cherché et changer les paramètres , j'ai tujours cette erreur.
0
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732 > toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
24 déc. 2021 à 14:27

 
$arrAffichage = getAffichageListe($choix_equipe,$choix_cluster);

echo "<pre> DEBUG :";
var_dump($arrAffichage);
echo "</pre><br>";

echo "<br> DEBUT DE LA BOUCLE ...";
 foreach($arrAffichage as $A ) { 
      echo "<br>" . print_r($A,true);
 }

1
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
24 déc. 2021 à 15:42
Voici cette fois-ci l'erreur qu'on m'affiche


j'ai modifié ma fonction getAffichage

function getAffichageListe($choix_equipe, $choix_cluster){
    global $bdd;
    $sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe AND CLUSTER = :choix_cluster ";
	
    //$data = [':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster];
 try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute(array(':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster));
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
}


malheureusement après la validation de ma première liste , l'erreur apparait encore


voici tous le code
<?php
		
	//Affichage des erreurs PHP
error_reporting(E_ALL);
//---------------------------------------------------------------------------//
//Connexion propre à la bdd
// voir : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
//---------------------------------------------------------------------------//
try{
  $bdd = new PDO('mysql:host=localhost;dbname=dblogin' ,'root','' );
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

//---------------------------------------------------------------------------//
//découpage du code en "fonctions"
//---------------------------------------------------------------------------//
  function getListeEquipeTerrain(){
    global $bdd;
    $sql = "SELECT EQUIPE_TERRAIN FROM tampon GROUP BY EQUIPE_TERRAIN";
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute();
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
  }
  
  function getCluster($choix_equipe){
    global $bdd;
    $sql = "SELECT DISTINCT CLUSTER FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe ";
    $datas = [':choix_equipe'=>$choix_equipe];
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute($datas);
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
  }
  

function getAffichageListe($choix_equipe, $choix_cluster){
    global $bdd;
    $sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe AND CLUSTER = :choix_cluster ";
	
    //$data = [':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster];
 try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute(array(':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster));
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
}
  //---------------------------------------------------------------------------//

	// Fichier entête 
	require_once("entete.php");
	
	// TRAITEMENT DU FORMULAIRE EQUIPE TERRAIN (si posté)
	if( isset($_POST['choix_equipe']) )	{
		$choix_equipe = $_POST['choix_equipe']; // choix fait
	} else {
		$choix_equipe = -1;
	}	

	// TRAITEMENT DU FORMULAIRE (si posté)
	if( isset($_POST['choix_cluster']) )	{
		$choix_cluster = $_POST['choix_cluster']; // choix fait
	} else {
		$choix_cluster = -1;
	}	


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="jquery-1.11.3-jquery.min.js"></script>
<link rel="stylesheet" href="style.css" type="text/css"  />
<title>PNRSS <?php print($userRow['user_email']); ?></title>
</head>

<body>

<nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
         
        </div>
		<div class="pull-left"><img src="images/logo-aigf.png"></div>
        <div id="navbar" class="navbar-collapse collapse">
          	<h3 class="text-center">
            PROGRAMME NATIONAL DE RECENSEMENT DES SITES ET STATIONS 
         	</h3>
          <ul class="nav navbar-nav navbar-right">
            
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
			  <span class="glyphicon glyphicon-user"></span> Utilisateur: <?php echo $userRow['user_email']; ?> <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="profile.php"><span class="glyphicon glyphicon-user"></span>  Profile</a></li>
                <li><a href="logout.php?logout=true"><span class="glyphicon glyphicon-log-out"></span> Déconnection</a></li>
              </ul>
            </li>
           </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>


    <div class="clearfix"></div>
    	
    
<div class="container-fluid" style="margin-top:80px;">
	
    <div class="container">
    
    	<label class="h5">Bienvenue : <?php print($userRow['user_name']); ?></label>
        <hr />
        
        <h3 align="center">COLLECTE DES DONNEES DU PNRSS</h3>
        <hr />
       	<br/>
		<div>							
			<!-- Liste déroulante des equipes -->
			<form method="post" action="liste_equipe.php">
				
				<select name="choix_equipe" class="col-lg-3">
				<option value="-1"<?php if($choix_equipe==-1){ echo ' selected="selected"'; } ?>>-- Choisissez -- </option>
				<?php
					$arrEquipes = getListeEquipeTerrain();
          foreach($arrEquipes as $equipe ) {
            $selected = $choix_equipe==$equipe['EQUIPE_TERRAIN'] ? ' selected="selected"' : "";
            echo '<option value="'.$equipe['EQUIPE_TERRAIN'].'" '.$selected.'>'.$equipe['EQUIPE_TERRAIN'].'</option>';	
          }            
        ?>
				</select>
				<input type="submit" value="Valider" />				
			</form>				
			<!-- FIN première liste déroulante-->

			<!-- DEBUT deuxième liste déroulante-->			
			<?php
			// -----------------------------------
			// AFFICHAGE du résultat (si on a fait un choix)
			if($choix_equipe != -1) { 
			?>
        <p>Vous avez sélectionné : <?php echo $choix_equipe; ?></p>
	<form method="post">	
        <select class="col-lg-3" name="choix_cluster">
          <option>--- Selectionnez un cluster ---</option>
			<?php
          $arrCluster = getCluster($choix_equipe);
          foreach( $arrCluster as $choix_cluster ){ 
            echo "<option value=" . $choix_cluster['CLUSTER'] . "'>". $choix_cluster['CLUSTER']."</option>";
          }   
			} 				 
			?> 
			 <p>Vous avez sélectionné : <?php echo $choix_cluster; ?></p> 
			 <p>Vous avez sélectionné : <?php echo $choix_equipe; ?></p>
		</select>
			<input type="submit" value="Valider" /> 
		</form>	
			
			<!-- Affichage des données dans un tableau-->
		<form method="post">
			<input type="submit">
			<table class="table table-hover">
 		 <thead>
			<tr>
			  <th scope="col">REGION</th>
			  <th scope="col">DEPARTEMENT</th>
			  <th scope="col">LOCALITE</th>
			  <th scope="col">SECTEUR</th>
			  <th scope="col">CLUSTER</th>
			  <th scope="col">LONGITUDE</th>
			  <th scope="col">LATITUDE</th>
			  <th scope="col">PYLONE</th> 
			</tr>
		  </thead>
		  <tbody>
			  <?php 
			  
			$arrAffichage = getAffichageListe($choix_equipe, $choix_cluster);

				echo "<pre> DEBUG :";
				var_dump($arrAffichage);
			  
				echo "</pre><br>";

				echo "<br> DEBUT DE LA BOUCLE ...";
				 foreach($arrAffichage as $A ) { 
					  echo "<br>" . print_r($A,true);
				 }

			  
			  ?>
			<tr>
			  <td scope="row"></th>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td> </td>
			  <td><input class="btn-group-justified btn-danger" type="submit" value="Traiter"/></td>
			</tr>   
		  </tbody>
		</table> 
		
		</form>	
			
			</div>
		<br/>
		<br/>
		
		</div>
  
    </div>

</div>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>
</html>
0
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732
24 déc. 2021 à 16:29
Remets le code que je te l'avais donné et fais un var_dump de la variable pour voir ce qu'elle contient

function getAffichageListe($choix_equipe, $choix_cluster){
    global $bdd;
    $sql = "SELECT * FROM tampon WHERE EQUIPE_TERRAIN = :choix_equipe AND CLUSTER = :choix_cluster ";
	$data = [':choix_equipe'=>$choix_equipe, ':choix_cluster'=>$choix_cluster];
    var_dump($data); // montres moi ce que ça te retourne..
 try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute($data);
      return $requete->fetchAll(); //on retourne le résultat sous forme d'array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       exit;
    }
}
1
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 > jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025
24 déc. 2021 à 16:51
voici la capture après le premier choix equipe


et voici une capture apres choix 2



Merci jordan45
0
jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025 4 732 > toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
24 déc. 2021 à 19:52
Choix_cluster est un array...
Comment t'es tu démerdé..
Ah oui.. tu as encore utilisé lr même nom de variable dans la boucle et la variable post...
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 > jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025
24 déc. 2021 à 20:04
je ne comprends pas bien ta réponse jordan45 ??
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 > jordane45 Messages postés 38398 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2025
24 déc. 2021 à 20:14
Merci jordan45 pour votre disponibilité. vous m'avez assez aidé, et je comprends que nos échanges sont lassant lol.
je vais me débrouiller pour la suite.

je tient à vous re exprimer toute ma gratitude encore et prenez soin de vous
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
25 déc. 2021 à 10:36
ah oui jordan, je viens de m'en rendre compte vraiment. Merci .voici la capture après prise en compte de tes recommandations


maintenant le soucis de conserver les deux variables et les utiliser pour la fonction affichage. le var_dump me dit qu'il ya seulement le cluster qui a des données
pourriez vous m'orienter.

joyeux noel
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
25 déc. 2021 à 11:49
Solution trouver ,


enfin j'ai mes deux variables. je peux maintenant procéder au prochain traitement.
0