Page 1 sur 1

comment savoir connaitre les valeurs posté

Posté : 19 août 2010, 15:17
par henri IV
Bonjour,
j'ai un formulaire avec une centaines de choix dans un checkbox, avec chacun un name=pays1, name=pays2, ...
Donc comment pour connaitre les valeurs POSTés pour faire une INSERT dans la BDD ?
j'ai bien pensé faire quelque chose comme cela mais je ne suis pas sur résultat et pas convaincu que c'est le meilleur choix.

Code : Tout sélectionner

for ($i=0; $i<count($_POST); $i++ ) { if ( ISSET ($_POST["pays.$i"]) ) { echo $_POST["pays.$i" ]; }
dans une boucle ?

Re: comment savoir connaitre les valeurs posté

Posté : 19 août 2010, 15:57
par xTG
Tu peux faire en plus court :
foreach($_POST as $key => $valeur)
{
  if( $valeur == true)
    echo "Checkbox " . $key;
}

Re: comment savoir connaitre les valeurs posté

Posté : 19 août 2010, 16:26
par Invité
yes man,

C'est good je prends note.

Merci pour ton aide.

Re: comment savoir connaitre les valeurs posté

Posté : 19 août 2010, 16:32
par AB
T'as essayer ? Si cela t'affiche bien les bonnes valeurs, j'enregistrerais le résultat dans un tableau ainsi tes éléments seront plus facilement manipulables.

Une variante avec foreach
$tab_pays = array();
foreach ($_POST as $key => $value)
{
  if (strpos($key, 'pays') === 0) $tab_pays[] = $value;
}
Et tu as directement le nom des pays cochés dans $tab_pays pour peu que tu aies à l'origine un tableau de correspondance que tu peux utiliser pour lister les checkbox ex:
<?php 
$pays['pays1'] = 'france';
$pays['pays2'] = 'angleterre';
$pays['pays3'] = 'allemagne';
//...
?>
<form action = "#" method = "post">
<p>
<?php foreach($pays as $key => $value)
{?>
<input name="<?php echo $key?>" type="checkbox" value="<?php echo $value?>" />
<?php } ?>
<input type ="submit" value ="ok" />
</p>
</form>
Sinon attention avec ta méthode, le dernier pays ne passera jamais dans ta boucle si le premier pays ne se nomme pas pays0. C'est pour cela que je préfère ma méthode avec foreach qui permet de ne pas avoir à se soucier de l'indexation du premier élément.

Re: comment savoir connaitre les valeurs posté

Posté : 19 août 2010, 16:57
par henri IV
Merci beaucoup
et pour récupérer le nombre dans une chaine $pays=pays18 j'ai pensé faire une conversion vers un entier int()$pays mais cela ne marche pas ! je ne trouve pas la syntaxe ?

Re: comment savoir connaitre les valeurs posté

Posté : 19 août 2010, 19:45
par AB
Pour récupérer dans une chaine les éléments d'un tableau tu peux faire par exemple
$choix_pays = implode(',',$tab_pays);
echo $choix_pays;
Voir le fonctionnement de la fonction implode

Sinon t'a essayé ma méthode ? Elle permet d'avoir directement le nom du pays pour l'enregistrer en bdd, ce qui t'évite de faire la correspondance par la suite...