Isset() & checkbox...

Fermé
AngryCheckbox - 17 mai 2012 à 19:46
 A.Nonymous - 18 mai 2012 à 23:16
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 :
<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

AngryCheckbox
17 mai 2012 à 19:47
Merci d'avance pour les réponses. :)
0
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
0