Isset() & checkbox...
AngryCheckbox
-
A.Nonymous -
A.Nonymous -
Bonjour, voilà plusieurs heures que je galère à ne plus avoir l'erreur du "Undefined index" à cause des boite à cocher.
J'en reviens donc ici pour de l'aide sur l'utilisation des issets...
Voici la partie importante de mon code pour mieux m'aider... :
PARTIE HTML :
Voici la partie PHP :
<?php
//récupère les infos saisies dans le formulaire de recherche de groupe par un artiste ou d'un genre
// script de récupération et traitement des requetes SQL
require('requetes.php');
$nomgroupe = $_POST['groupe'];
$rock=$_POST['rock'];
$pop=$_POST['pop'];
$metal=$_POST['metal'];
//recherche avec le nom du groupe
$rechgroupe = executer_requete("Select * from groupe_site where nomgroupe like '%$nomgroupe%' ");
//si le nom du groupe n'est pas trouvé on retourne un message
if ($rechgroupe=='' OR $nomgroupe!='')
{
echo("<p>il n'y a aucun groupe qui corresponde ce nom</p>");
}
else ((isset($rock)) OR (isset($pop)) OR (isset($metal))) //Test si les checkbox sont cochées ou non
{
$result=executer_requete("Select * from groupe_site where
nomgroupe like '%$nomgroupe%'
or genre like '%$rock%'
or genre like '%$pop%'
or genre like '%$metal%'");
$num = pg_num_rows($result);
echo "<table>\n";
echo("<th>Nom du groupe</th><th>Genre</th><th>Ratio</th>");
for($i=0; $i<$num; $i++)
{
$ligne = pg_fetch_object($result);
echo("
<tr><td>$ligne->nomgroupe</td><td>$ligne->genre</td><td>$ligne->ratio</td></tr>");
}
echo "</table>\n";
echo "</div>\n";
}
?>
J'en reviens donc ici pour de l'aide sur l'utilisation des issets...
Voici la partie importante de mon code pour mieux m'aider... :
PARTIE HTML :
<section> <form method="post" action="scripts/recherche_artiste.php"> <fieldset> <legend>Effectuer une recherche</legend> <p><label for='groupe'>Saisissez un nom de groupe :</label> <input id='groupe' name=groupe type=text /></p> <p>Selectionnez un genre</p> <p><label for='rock'>Rock</label> <input id='rock' name="rock" type="checkbox" /></p> <p><label for='metal'>Metal</label> <input id='metal' name="metal" type="checkbox" /></p> <p><label for='pop'>Pop/Rock</label> <input id='pop' name="pop" type="checkbox" /></p> <input type="submit" name="rechercher" value="Rechercher"> </fieldset> </form> </section>
Voici la partie PHP :
<?php
//récupère les infos saisies dans le formulaire de recherche de groupe par un artiste ou d'un genre
// script de récupération et traitement des requetes SQL
require('requetes.php');
$nomgroupe = $_POST['groupe'];
$rock=$_POST['rock'];
$pop=$_POST['pop'];
$metal=$_POST['metal'];
//recherche avec le nom du groupe
$rechgroupe = executer_requete("Select * from groupe_site where nomgroupe like '%$nomgroupe%' ");
//si le nom du groupe n'est pas trouvé on retourne un message
if ($rechgroupe=='' OR $nomgroupe!='')
{
echo("<p>il n'y a aucun groupe qui corresponde ce nom</p>");
}
else ((isset($rock)) OR (isset($pop)) OR (isset($metal))) //Test si les checkbox sont cochées ou non
{
$result=executer_requete("Select * from groupe_site where
nomgroupe like '%$nomgroupe%'
or genre like '%$rock%'
or genre like '%$pop%'
or genre like '%$metal%'");
$num = pg_num_rows($result);
echo "<table>\n";
echo("<th>Nom du groupe</th><th>Genre</th><th>Ratio</th>");
for($i=0; $i<$num; $i++)
{
$ligne = pg_fetch_object($result);
echo("
<tr><td>$ligne->nomgroupe</td><td>$ligne->genre</td><td>$ligne->ratio</td></tr>");
}
echo "</table>\n";
echo "</div>\n";
}
?>
2 réponses
Ca serait pas mal de mettre des "value" aux checkboxes.
Sinon, c'est plutôt bizarre ce qui est dans :
or genre like '%$rock%'
or genre like '%$pop%'
or genre like '%$metal%'
Quelles sont les valeurs possibles de "$rock" ?
Si $rock == '' alors genre like '%%' , ce qui ne donnera pas le résultat attendu
Sinon, c'est plutôt bizarre ce qui est dans :
or genre like '%$rock%'
or genre like '%$pop%'
or genre like '%$metal%'
Quelles sont les valeurs possibles de "$rock" ?
Si $rock == '' alors genre like '%%' , ce qui ne donnera pas le résultat attendu