Condition ne fonctionne pas.
Zeuz
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je suis débutant php, je préfère le préciser. JE n'ai eu aucune base et j'ai appris par moi-meme. Donc déjà, mes excuses pour le manque de clareté. :)
J'ai un petit souci avec une page de recherche dans des db's.
Je ne comprends pas d'ou cela peut venir. Et il ne me reste plus bcp de cheveux :)
Il s'agit d'un site de profils et casting.
J'ai donc 4 menus déroulants et un bouton "Rafraichir" qui permet de filtrer une liste de membres selon ces critères :
- Menu 1 : Silouhette, portrait, hobby
- Menu 2 : se rempli selon le menu 1
- et menu 3 se rempli selon le menu 2
Une fois rafraichi, un 4 ieme menu déroulant apparait devant les 3 autres et on peut y choisir "et" ou "ou" et ainsi pouvoir refaire un choix et filtrer à nouveau.
Voici la page. je pense que l'erreur est située au niveau de la condition du "clic"
Comme je dois re-soumettre le form lorsque je change mes menus 2 et 3, on dirait que le serveur interprête le clic comme étant cliqué à chaque fois... je ne sais pas comment faire en sorte de différencier le fait de cliquer et le fait de sousmettre le form pour le remplissage de menu déroulant. Pour info, dans la page ces menus s'appellent "Search", "Search2", "Search3" et "choice"
Merci d'avance pour votre aide,
Jonathan.
EDIT : Ajout du LANGAGE dans les balises de code.
Merci d'y penser à l'avenir.
Je suis débutant php, je préfère le préciser. JE n'ai eu aucune base et j'ai appris par moi-meme. Donc déjà, mes excuses pour le manque de clareté. :)
J'ai un petit souci avec une page de recherche dans des db's.
Je ne comprends pas d'ou cela peut venir. Et il ne me reste plus bcp de cheveux :)
Il s'agit d'un site de profils et casting.
J'ai donc 4 menus déroulants et un bouton "Rafraichir" qui permet de filtrer une liste de membres selon ces critères :
- Menu 1 : Silouhette, portrait, hobby
- Menu 2 : se rempli selon le menu 1
- et menu 3 se rempli selon le menu 2
Une fois rafraichi, un 4 ieme menu déroulant apparait devant les 3 autres et on peut y choisir "et" ou "ou" et ainsi pouvoir refaire un choix et filtrer à nouveau.
Voici la page. je pense que l'erreur est située au niveau de la condition du "clic"
Comme je dois re-soumettre le form lorsque je change mes menus 2 et 3, on dirait que le serveur interprête le clic comme étant cliqué à chaque fois... je ne sais pas comment faire en sorte de différencier le fait de cliquer et le fait de sousmettre le form pour le remplissage de menu déroulant. Pour info, dans la page ces menus s'appellent "Search", "Search2", "Search3" et "choice"
Merci d'avance pour votre aide,
Jonathan.
<?php include ('DB_connect.php'); $username=$_COOKIE['username']; if(!empty($_POST['filter_global']) ) $filter_global=$_POST['filter_global']; if(!empty($_POST['step'])) $step=$_POST['step']; else $step=0; if(isset($_POST['Rafraichir']) && $_POST['Rafraichir']=='Rafraichir') { $step++; if($_POST['Search3']<>""){ $filter=$_POST['Search2']; $value=$_POST['Search3']; $filter_temp[$step]='`'.$filter.'`' . '="' .$value. '"'; } if (isset($_POST['choice'])){ if($_POST['choice']=='et') $filter_global=$filter_global. ' AND ' .$filter_temp[$step]; if($_POST['choice']=='ou') $filter_global=$filter_global. ' OR ' .$filter_temp[$step]; }else $filter_global=$filter_temp[$step]; } $_POST['Search3'] = ""; $_POST['Rafraichir'] = ""; ?> <form method="POST" action="archi.php?page=agence_membre_recherche" enctype="multipart/form-data" > <table width="99%" border="0" cellspacing="0" cellpadding="0"> <tr > <td width="175"> </td> <td colspan="4"><?php echo $step ; echo $filter_global; ?></td> <td width="103"> </td> <td width="160"> </td> </tr> <tr> <td valign="top"> </td> <td width="91"> </td> <td width="90"> </td> <td width="91"> </td> <td width="91"> </td> <td> </td> <td> </td> </tr> <tr> <td width="175" rowspan="4" valign="top"><?php include('agence_menu.php'); ?></td> <td> <?php if ($step<>0){ ?> <select name="choice" > <option><?php if (isset($_POST['choice'])) echo $_POST['choice'] ; else echo '' ; ?></option> <option value='et' >et</option> <option value='ou' >ou</option> </select> <?php } ?> </td> <td > <select name="Search" onchange="this.form.submit()" > <option><?php if (isset($_POST['Search'])) echo $_POST['Search'] ; else echo '' ; ?></option> <option value='Silouhette' >Silouhette</option> <option value='Portrait' >Portrait</option> <option value='Hobby' >Hobby</option> </select> </td> <td> <select name="Search2" onchange="this.form.submit()" > <option><?php if (isset($_POST['Search2'])) echo $_POST['Search2'] ; else echo '' ; ?></option> <?php if ($_POST['Search']=="Silouhette") { ?> <option value='Taille' >Taille</option> <option value='Tour de taille' >Tour de taille</option> <option value='Tour de hanche' >Tour de hanche</option> <option value='Tour de poitrine' >Tour de poitrine</option> <option value='Poids' >Poids</option> <option value='Pointure' >Pointure</option> <?php } if ($_POST['Search']=="Portrait"){ ?> <option value='Couleur des yeux' >Couleur des yeux</option> <option value='Couleur des cheveux' >Couleur des cheveux</option> <option value='Couleur de peau' >Couleur de peau</option> <option value='Taille des cheveux' >Taille des cheveux</option> <option value='Type de cheveux' >Type de cheveux</option> <option value='Moustache' >Moustache</option> <option value='Oreille percee' >Oreille percee</option> <option value='Barbe' >Barbe</option> <option value='Piercing' >Pirecing</option> <option value='Lentilles' >Lentiles</option> <?php } if ($_POST['Search']=="Hobby"){ ?> <option value='Instrument' >Instrument</option> <option value='Sport' >Sport</option> <option value='Chant' >Chant</option> <option value='Theatre' >Theatre</option> <?php } ?> </select> </td> <td> <select name="Search3" > <option><?php if (isset($_POST['Search3'])) echo $_POST['Search3'] ; else echo '' ; ?></option> <?php if ($_POST['Search2']=="Taille"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Taille'];?>' ><?php echo $data['Taille'];?></option> <?php }} if ($_POST['Search2']=="Tour de taille"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Tour de taille'];?>' ><?php echo $data['Tour de taille'];?></option> <?php }} if ($_POST['Search2']=="Tour de hanche"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Tour de hanche'];?>' ><?php echo $data['Tour de hanche'];?></option> <?php }} if ($_POST['Search2']=="Tour de poitrine"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Tour de poitrine'];?>' ><?php echo $data['Tour de poitrine'];?></option> <?php }} if ($_POST['Search2']=="Poids"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Poids'];?>' ><?php echo $data['Poids'];?></option> <?php }} if ($_POST['Search2']=="Pointure"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Pointure'];?>' ><?php echo $data['Pointure'];?></option> <?php }} if ($_POST['Search2']=="Couleur des yeux") { $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Couleur des yeux'];?>' ><?php echo $data['Couleur des yeux'];?></option> <?php }} if ($_POST['Search2']=="Couleur des cheveux"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Couleur des cheveux'];?>' ><?php echo $data['Couleur des cheveux'];?></option> <?php }} if ($_POST['Search2']=="Couleur de peau"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Couleur de peau'];?>' ><?php echo $data['Couleur de peau'];?></option> <?php }} if ($_POST['Search2']=="Taille des cheveux"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Taille des cheveux'];?>' ><?php echo $data['Taille des cheveux'];?></option> <?php }} if ($_POST['Search2']=="Type de cheveux"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Type de cheveux'];?>' ><?php echo $data['Type de cheveux'];?></option> <?php }} if ($_POST['Search2']=="Moustache"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Moustache'];?>' ><?php echo $data['Moustache'];?></option> <?php }} if ($_POST['Search2']=="Oreille percee"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Oreille percee'];?>' ><?php echo $data['Oreille percee'];?></option> <?php }} if ($_POST['Search2']=="Barbe"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Barbe'];?>' ><?php echo $data['Barbe'];?></option> <?php }} if ($_POST['Search2']=="Piercing"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Piercing'];?>' ><?php echo $data['Piercing'];?></option> <?php }} if ($_POST['Search2']=="Lentilles"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Lentilles'];?>' ><?php echo $data['Lentilles'];?></option> <?php }} if ($_POST['Search2']=="Instrument"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Instrument'];?>' ><?php echo $data['Instrument'];?></option> <?php }} if ($_POST['Search2']=="Sport"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Sport'];?>' ><?php echo $data['Sport'];?></option> <?php }} if ($_POST['Search2']=="Chant"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Chant'];?>' ><?php echo $data['Chant'];?></option> <?php }} if ($_POST['Search2']=="Theatre"){ $query = mysql_query ("SELECT * FROM membres"); $i=0; while ($data = mysql_fetch_array($query)) { $i++; ?> <option value ='<?php echo $data['Theatre'];?>' ><?php echo $data['Theatre'];?></option> <?php }} ?> </select> </td> <td> <input type="hidden" name="step" id="step" value=<?php echo $step; ?> /> <input type="hidden" name="filter_global" id="filter_global" value="<?php echo $filter_global; ?> " /> <input type="submit" name="Rafraichir" value="Rafraichir" /> </td> <td><a href="archi.php?page=agence_contact_selection<?php echo $data['Id']; ?>">Contacter la sélection</a></td> </tr> <tr> <td height="2"></td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td colspan="5"> <table width="630"> <?php if ($step<>0) $req = "SELECT * FROM membres where " . $filter_global; else $req = "SELECT * FROM membres"; $query = mysql_query($req); $j=0; while (($data = mysql_fetch_array($query))) { $j++; $id[$i] = $data['Id']; $user[$i] = $data['Username']; $nom[$i] = $data['Nom']; $prenom[$i] = $data['Prenom']; $date[$i] = $data['Date de naissance']; $sexe[$i] = $data['Sexe']; ?> <tr> <td width="101" align="left"><?php echo $nom[$i]; ?></td> <td width="82" align="left"><?php echo $prenom[$i]; ?></td> <td width="101" align="left"><?php echo $date[$i]; ?></td> <td width="95" align="left"><?php echo $sexe[$i]; ?></td> <td width="227"><a href="archi.php?page=agence_contact&id=<?php echo $data['Id']; ?>">Contacter</a> - <a href="archi.php?page=agence_fiche&id=<?php echo $data['Id']; ?>">Voir Fiche</a></td> </tr> <?php } ?> </table> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> </form>
EDIT : Ajout du LANGAGE dans les balises de code.
Merci d'y penser à l'avenir.
A voir également:
- Condition ne fonctionne pas.
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Nbval avec condition ✓ - Forum Excel
- Je ne suis pas un robot confidentialité - conditions - Forum Facebook
- Condition optimale téléphone ✓ - Forum Mobile
2 réponses
Bonjour,
1 - tu utilises l'ancienne extension Mysql_* ... considérée comme obsolète.
Je t'invite à passer à mysqli ou (je préfère...) la PDO.
2 - Pourquoi as tu 20 fois la même requête ? (SELECT * FROM membres)
3 - Plutot que de faire 20 IF .... (
cela rendra ton code plus lisible
4 - ... plutôt que d'utiliser du SUBMIT (ce qui impose un refresh de ta page....) commence donc à regarder du côté de l' AJAX ( javascript + php ) (idéalement en JQUERY )
PS: Pense également à récupérer tes variables 'proprement' AVANT de les utiliser via des ISSET (ou !empty) et l'écriture TERNAIRE.
Par exemple :
1 - tu utilises l'ancienne extension Mysql_* ... considérée comme obsolète.
Je t'invite à passer à mysqli ou (je préfère...) la PDO.
2 - Pourquoi as tu 20 fois la même requête ? (SELECT * FROM membres)
3 - Plutot que de faire 20 IF .... (
if ($_POST['Search2']=="MachinTruc..."){)penses à utiliser un SWITCH.
cela rendra ton code plus lisible
4 - ... plutôt que d'utiliser du SUBMIT (ce qui impose un refresh de ta page....) commence donc à regarder du côté de l' AJAX ( javascript + php ) (idéalement en JQUERY )
PS: Pense également à récupérer tes variables 'proprement' AVANT de les utiliser via des ISSET (ou !empty) et l'écriture TERNAIRE.
Par exemple :
$Search2 = !empty($_POST['Search2']) ? $_POST['Search2'] : NULL; switch($Search2) { case "Sport" : //ici ton code... pour sport break; case "Chant" : //ici ton code...pour chant break; default: //ici le code si aucune valeur correspondante break; }