Problème de récupération checkboxes

Résolu/Fermé
lolo-viuz Messages postés 7 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 29 septembre 2007 - 21 sept. 2007 à 08:08
 sacrelolo - 22 sept. 2007 à 02:11
Bonjour à tous !

Je n'arrive pas à récupérer des valeurs de checkboxes.
- La syntaxe des checkboxes est correcte (j'ai bien vérifié sur la FAQ et le forum)
- C'est au niveau de la récupération que ça coince. Faut-il faire une boucle ?
- 2 ème problème: le script ne prend que le cas par défaut.

Le code:

//---------------------Les checkboxes-------------------------
<!-- Filtrage groupements (ministeres,agences, reseaux...) -->

<form name="filtrage" method="POST" action="recherche-entreprises-pays.php">
<input TYPE="checkbox" NAME="choix[]" VALUE="9"><? echo TXT_OI;?></input><br />
<input TYPE="checkbox" NAME="choix[]"VALUE="10"><? echo TXT_ONG;?></input><br />
<input TYPE="checkbox" NAME="choix[]"VALUE="1"><? echo TXT_MINISTERE;?></input><br />
<input TYPE="checkbox" NAME="choix[]"VALUE="2"><? echo TXT_DIRECTION_ENVIR;?></input><br />
<input type="submit" value="OK">
<input type="reset" value="Effacer">
</form>

<!-- -----------------------Fin----------------------------------- -->

<!-- Filtrage autres (particuliers, independants...) -->

<form name="filtrage2" method="POST" action="recherche-entreprises-pays.php">
<input NAME="choix2" TYPE="radio" VALUE="12"><? echo TXT_PARTICULIER;?></input><br />
<input NAME="choix2" TYPE="radio" VALUE="13"><? echo TXT_INDEPENDANT;?></input><br />
<input type="submit" name="filtrage2" value="OK">
<input type="reset" value="Effacer">
</form>

<?
//---------------choix 1-------------------------
if (isset($choix))
{
$edit= 'Groupements';
$choix = $_POST['choix'];
$select = 'fr_groupmt_profil.id,fr_groupmt_profil.pays';
$select_from = 'fr_groupmt_profil';
$where = 'fr_groupmt_profil.pays';
}
//-------------choix 2---------------------------
else if (isset($_POST ['$filtrage2']))
{
$edit= 'autres';
$filter= $_POST["filtrage2"];
$select = 'fr_particulier_profil.id,fr_particulier_profil.pays';
$select_from = 'fr_particulier_profil';
$where = 'fr_particulier_profil.pays';
}
//-----------par défaut---------------------------
else
{
$edit= 'Entreprises';
$filter= 'entrepr';
$select = 'fr_entrepr_profil.id,fr_entrepr_profil.pays';
$select_from = 'fr_entrepr_profil';
$where = 'fr_entrepr_profil.pays';
}


//----------------------------Sélection des affichages-----------------------------

//Allemagne

$sql="SELECT $select FROM $select_from WHERE $where = 'de'";
$result1 = mysql_query($sql,$link) or die ('Erreur : '.mysql_error() );
$pays1=mysql_numrows($result1);

?>

etc etc...

Merci de votre aide !

2 réponses

Pour les checkbox, la valeur retournée par choix[] est un array des cases cochées, donc tu dois le parcourir pour avoir les valeurs des cases cochées

de plus:
<?
//---------------choix 1-------------------------
if (isset($choix))
{
$edit= 'Groupements';
$choix = $_POST['choix'];
$select = 'fr_groupmt_profil.id,fr_groupmt_profil.pays';
$select_from = 'fr_groupmt_profil';
$where = 'fr_groupmt_profil.pays';
}
//-------------choix 2---------------------------
else if (isset($_POST ['$filtrage2']))
{
$edit= 'autres';
$filter= $_POST["filtrage2"];
$select = 'fr_particulier_profil.id,fr_particulier_profil.pays';
$select_from = 'fr_particulier_profil';
$where = 'fr_particulier_profil.pays';
}
//-----------par défaut---------------------------
else
{
$edit= 'Entreprises';
$filter= 'entrepr';
$select = 'fr_entrepr_profil.id,fr_entrepr_profil.pays';
$select_from = 'fr_entrepr_profil';
$where = 'fr_entrepr_profil.pays';
}


Tu dois récupérer les valeurs postées par $_POST['choix'] car si tu as RegisterGlobal à of dans le php.ini , ça ne marche pas avec $choix directement

Donc mets :
if (isset($_POST['choix']))
à la place de if (isset($choix))
0
Merci pour ta réponse. J'ai compris, maintenant.
0