Affichage d'un menu deroulant php

Fermé
Rinkutaicho - 23 juil. 2009 à 14:00
 Rinkutaicho - 23 juil. 2009 à 14:45
Bonjour, j'ai un soucis avec mon script. J'ai fait une liste deroulante et lorsque l'on choisi une option il doit m'afficher les resultat de ma requete (j'ai ajoute une pagination) . le probleme est qu'il affiche la premiere page et qd on click sur le lien suivant rien.
voici le script le formulaire est sur une page et le code php sur une autre

<body>
choisissez votre critere de recherche
<form action="listing.php" method="post">
<select name="champ">
<?php
$sql='SELECT DISTINCT sex_cand FROM candidat';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_array($req)){
// on affiche chaque champ
echo '<option name="'.$data['sex_cand'].'">'.$data['sex_cand'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req);
//On ferme le select
?>
</select>
<input type="submit" name="Valider" value="OK"/>
</form>



</body>

et voici la page ki est apelé qu'on valide le formulaire

<body>
<?php
if(isset($_POST['Valider'])){
$champ=$_POST['champ'];
//récupère tous les enregistrements
$select = 'SELECT cod_cand,cod_etab,nom_cand,prenom_cand,sex_cand,age_cand,niveau_cand,tel FROM candidat WHERE nom_cand="'.$champ.'"';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

$Nmax = 1; // nombre par page
$Ncur = 0; // n° de la fiche courante

$Ndeb=@$_GET["num"]; // 1ère fiche transmise par l'URL
// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>code</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Code etablissement</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Prenom</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Sexe</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Age</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Niveau</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Telephone</u></b></td>';
echo '</tr>'."\n";
?>
<?php


// tant qu'il y a des fiches
while (($row = mysql_fetch_array($result))
&& ($Ncur<$Nmax+$Ndeb)) {
if($Ncur>=$Ndeb) {
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
// while(($row = mysql_fetch_array($result))
//&& ($Ncur<$Nmax+$Ndeb)) {
// if($Ncur>=$Ndeb) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row["cod_cand"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["cod_etab"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["nom_cand"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["prenom_cand"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["sex_cand"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["age_cand"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["niveau_cand"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["tel"].'</td>';
echo '</tr>'."\n";
}
// une de plus
$Ncur++;
}?>
<br>

<table cellpadding=3><tr>
<?php // Navigation
// Des fiches avant ?
if($Ndeb > 0) { ?>
<td valign=top>
<A href="?num=<?php echo $Ndeb-$Nmax; ?>"
>Retour</A>
</td>
<?php } ?>
<td>
<?php // N° des pages
$Npag = ceil(mysql_numrows($result)/$Nmax);
for($i = 1;$i<=$Npag;$i++) {
// Page courante ?
if($Ndeb == ($i-1)*$Nmax) { ?>
<?php echo $i; ?>
<?php } else { ?>
<A href="?num=<?php echo ($i-1)*$Nmax; ?>"
> <?php echo $i; ?> </A>
<?php }
} ?>
</td>
<?php // Des fiches après ?
if($row) { ?>
<td valign=top>
<A href="?num=<?php echo $Ncur; ?>">Suite</A>
</td>
<?php } ?>
</tr></table>
<?php
echo '</table>'."\n";
// fin du tableau.
}} ?>

</body>
A voir également:

4 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
23 juil. 2009 à 14:06
"le probleme est qu'il affiche la premiere page et qd on click sur le lien suivant rien. "

c'est normal, tu fais un if(isset($_POST['valider']))

la variable POST existe pour la premiere page, mais pas pour la 2nde
0
d'accord, mais que faut-il faire alors?
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
23 juil. 2009 à 14:30
Ben ca c'est à toi de faire comme tu veux, t'as plein de moyens différents pour arriver au même résultat ...
mais tant que tu ne feras que tester l'existante de ta variable POST, c'est sûr que ca ne marchera pas
0
s'il te plait donne moi un moyen j't'en prie
je suis novice alors aide moi s'il te plait
0