[RESOLU] Afficher le résultat d'un formulaire dans un tableau php

fnk_west
Invité n'ayant pas de compte PHPfrance

28 juil. 2014, 07:11

Bonjour à tous,

Alors voici mon problème : Je souhaite afficher le résultat de mon formulaire dans un tableau lorsque j'effectue une recherche.
En effet, mon interface graphique web, va permettre aux utilisateurs de pouvoir effectuer une recherche par secteur (une liste déroulante) ou par login (un formulaire).
J'ai réussi à afficher la valeur que je sélectionne dans la liste déroulante dans mon tableau, mais pas quand je le fais avec mon formulaire.
Je n'ai pas de message d'erreur, et il me retourne un tableau vide.

Auriez-vous des réponses, des suggestions à me proposer svp ? merci.

Voici mon code :
<!-- Formulaire : liste déroulante -->
<form method="post" name="form"style="height:19px" align="center" action="./selection.php">
Secteur :
<select name="secteur" onchange="form.submit()"> 
<option selected="selected"<?php echo choixParDefaut('Selectionnez'); ?>>--- Sélectionnez ---</option> 
<option value="DSI" <?php echo choixParDefaut('DSI'); ?>>DSI</option> 
<option value="DAN" <?php echo choixParDefaut('DAN'); ?>>DAN</option> 
<option value="SCT" <?php echo choixParDefaut('SCT'); ?>>SCT</option> 
<option value="CGN" <?php echo choixParDefaut('CGN'); ?>>CGN</option> 
</select>
</form>

<!-- Formulaire : text -->
 <form for="Nom" method="post" action="./selection.php" style="height:19px display:inline-block"> Nom :
 <input name="nom" type="text" />
<?php
echo htmlspecialchars($_POST['nom']);

?>
 <input type="submit" id="chercher" name="chercher" value="Chercher"/>
 </form>
<?php 
// Création de la fonction 
function choixParDefaut($secteur)
{
// On crée une variable (vide par défaut) que l'on retournera à la fin 
$par_defaut = '';

// Si le visiteur a choisi un secteur
if (isset($_POST['secteur']))
{
// Si ce secteur correspond au secteur que l'on est en train de traiter
if ($_POST['secteur'] == $secteur)
{
// Alors on modifie la variable que l'on retournera et on lui met selected 
$par_defaut='selected="selected"';
}
}
// On ne retourne rien si ce n'était pas le secteur choisi, selected si c'était le bon secteur
return $par_defaut;
} 
// -------------- Fin de la fonction --------------- 

if (isset($_POST["secteur"] ) && isset($_POST["nom"])) 
{

$sql = "select id, nom, prenom, type_droit, status, secteur from maxusergroups where status = 'bloque' and id = '".$_POST["nom"]."' and secteur = '".$_POST["secteur"]."';";
$resultat = mysql_query($sql, $link) or die ('Erreur : '.mysql_error());
$nb_users = mysql_num_rows($resultat);

echo '<table>'."\n";
echo '<tr>';
echo '<td>Identifiant</td>';
echo '<td>Nom</td>';
echo '<td>Prenom</td>';
echo '<td>Type_droit</td>';
echo '<td>Status</td>';
echo '<td>Secteur</td>'; 
echo '</tr>'."\n";
while($row = mysql_fetch_array($resultat)) {
echo '<tr>';
echo '<td>'.$row["id"].'</td>';
echo '<td>'.$row["nom"].'</td>';
echo '<td>'.$row["prenom"].'</td>';
echo '<td>'.$row["type_droit"].'</td>';
echo '<td>'.$row["status"].'</td>';
echo '<td>'.$row["secteur"].' </td>'; 
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo '<center>Pas d\'enregistrements dans cette table...</center>';
 // on libère le résultat
mysql_free_result($resultat);
?> 

Mammouth du PHP | 2278 Messages

28 juil. 2014, 09:23

Version amendée et commentée:
<?php 
// Création de la fonction 
function choixParDefaut($secteur)
{
	// On crée une variable (vide par défaut) que l'on retournera à la fin 
	$par_defaut = '';

	// Si le visiteur a choisi un secteur
	if (isset($_POST['secteur']))
	{
		// Si ce secteur correspond au secteur que l'on est en train de traiter
			if ($_POST['secteur'] == $secteur)
			{
				// Alors on modifie la variable que l'on retournera et on lui met selected 
				$par_defaut='selected="selected"';
			}
	}
	// On ne retourne rien si ce n'était pas le secteur choisi, selected si c'était le bon secteur
	return $par_defaut;
} 
// -------------- Fin de la fonction --------------- 


print_r($_POST); //ajout MB

/*Il est bien évident que si ton formulaire ne comprend que le nom, tu ne passeras jamais dans ce if
Si tu mets DEUX formulaires, lors de la validation du second la valeur saisie dans le premier est perdue.
*/

$consulter = true;
if (isset($_POST['nom']))
{
	$nom = $_POST['nom'];
}
else
{
	$consulter = false;
}
if ($consulter)
{
	$secteur = $_POST['secteur'];
	print "On est dans le if"; //MB
	$sql = "select id, nom, prenom, type_droit, status, secteur from maxusergroups where status = 'bloque' and id = '$nom' and secteur = '$secteur';";
	/*mysql est obsolete et doit etre remplac par mysqli ou PDO*/
	$resultat = mysql_query($sql, $link) or die ('Erreur : '.mysql_error());
	$nb_users = mysql_num_rows($resultat);

	echo '<table>'."\n";
	echo '<tr>';
	echo '<td>Identifiant</td>';
	echo '<td>Nom</td>';
	echo '<td>Prenom</td>';
	echo '<td>Type_droit</td>';
	echo '<td>Status</td>';
	echo '<td>Secteur</td>'; 
	echo '</tr>'."\n";
	while($row = mysql_fetch_array($resultat)) 
	{
		echo '<tr>';
		echo '<td>'.$row["id"].'</td>';
		echo '<td>'.$row["nom"].'</td>';
		echo '<td>'.$row["prenom"].'</td>';
		echo '<td>'.$row["type_droit"].'</td>';
		echo '<td>'.$row["status"].'</td>';
		echo '<td>'.$row["secteur"].' </td>'; 
		echo '</tr>'."\n";
	}
	echo '</table>'."\n";
	mysql_free_result($resultat);
	}
	else echo '<center>Pas d\'enregistrements dans cette table...</center>';
  	// on libère le résultat MAL PLACE
	//mysql_free_result($resultat);
?>


<!-- Formulaire : liste déroulante -->
<form method="post" name="form"style="height:19px" align="center" action="./index.php">
 Secteur :
<select name="secteur" onchange="form.submit()"> 
<!--En mettant ctte première option tu as tjs une valeur pour le secteur y compris quand aucune n'a été séletionnée
<option selected="selected"<?php echo choixParDefaut('Selectionnez'); ?>>--- Sélectionnez ---</option> -->
<option value="DSI" <?php echo choixParDefaut('DSI'); ?>>DSI</option> 
<option value="DAN" <?php echo choixParDefaut('DAN'); ?>>DAN</option> 
<option value="SCT" <?php echo choixParDefaut('SCT'); ?>>SCT</option> 
<option value="CGN" <?php echo choixParDefaut('CGN'); ?>>CGN</option> 
</select>
<!--</form> supprimé par MB-->

<!-- Formulaire : text -->
  <!--<form for="Nom" method="post" action="./index.php" style="height:19px display:inline-block"> 
supprimé MB; en plus ca m'étonnerait qu'on puisse styler un formulaire--> Nom :
  <input name="nom" type="text" />
<?php
//echo htmlspecialchars($_POST['nom']); devrait se trouver au moment de la requete

?>
  <input type="submit" id="chercher" name="chercher" value="Chercher"/>
  </form>
  
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

fnk_west
Invité n'ayant pas de compte PHPfrance

28 juil. 2014, 23:21

C'est exactement ça, avec quelques modifs que j'ai fait.

Merci beaucoup pour votre aide :D à plus.

Petit nouveau ! | 8 Messages

29 juil. 2014, 00:17

Merci sirakawa! =D> :D

[SUJET RESOLU]