Affichage des données issues de 2 listes déroulante dépendan
toumax
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
toumax Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
toumax Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Affichage des données issues de 2 listes déroulante dépendan
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Trier des données excel - Guide
- Supprimer les données de navigation - Guide
8 réponses
Regarde le if ligne 81 puis ta boucle ligne 177
Ne vois-tu pas que tu as utilisé le même nom de variable ?
Ne vois-tu pas que tu as utilisé le même nom de variable ?
Bonjour,
Tu dis avoir un problème .. sans expliquer quoi ....
Quoi qu'il en soit, ton code pourrait ressembler à un truc du genre:
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...
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...
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
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
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 )
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 )
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
une illustration en image

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

Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Apres quelques modifs et pris en compte de vos observations
j'ai créé cette fonction calquant le votre
avec deux paramètres
mais lorsque j'effectue ce traitement :
il m'affiche ces erreurs :

aide moi stp . Merci
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
Ah.. et puis... c'est quoi cette variable $datass ?? je n'avais pas vu ....
Tu sais ce que c'est un array associatif ???
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; } }
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 :
et l'appelle de cette fonction :
j'ai beau cherché et changer les paramètres , j'ai tujours cette erreur.
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.
Voici cette fois-ci l'erreur qu'on m'affiche

j'ai modifié ma fonction getAffichage
malheureusement après la validation de ma première liste , l'erreur apparait encore

voici tous le code

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>
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; } }
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

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