Php et checkbox ; le tableau est toujours vid

Fermé
karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009 - 29 févr. 2008 à 00:29
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 - 5 mars 2008 à 19:21
Bonjour,

voilà, j'ai un ptit soucis en php.. un bug fantôme...

voilà mon code ;

<form method='POST' action='process.php'>
Merci de cocher vos 2 couleurs préférées:<br>
<input type="checkbox" name="couleur[]" value="jaune"> Jaune<br>
<input type="checkbox" name="couleur[]" value="bleu"> Bleu<br>
<input type="checkbox" name="couleur[]" value="vert"> Vert<br>
<input type="checkbox" name="couleur[]" value="orange"> Orange<br>
<input type="checkbox" name="couleur[]" value="rouge"> Rouge<br>
<input type="submit" name="exple2" value="Résultats">
</form>
<?
$ctrl=sizeof($couleur);
if($ctrl!=2 ){
echo"Attention vous n'avez pas cochez le bon nombre de cases !!";
exit;
}
else{
echo"Vous avez choisi comme couleurs:<br>";
foreach ($couleur as $valeur){
echo"le ". $valeur.".<br>";
}
}
?>

ca parait tout bête, non ? et bien le soucis est le suivant ;
quoique je coche, j'ai TOUJOURS le meme message : "Attention vous n'avez pas cochez le bon nombre de cases !!"

Comprends pas... comme si le tableaune remplissait jamais...

please help ^_^
@+ bisous
A voir également:

1 réponse

jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 24
29 févr. 2008 à 00:45
Bonjour,

Pourrais-tu m'expliquer ce que tu as dans $couleur, Comment tu récupère les valeurs ...
D'après ton code, lorsque tu cliques sur le bouton "Resultats", tu appel le fichier process.php, c'est dans ce fichier la que tu dois récupérer la valeur par $_POST['Couleur[]'];

Bonne journée.
0
karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009 1
29 févr. 2008 à 01:29
Hello jonastuces,

merci de m'aider...
j'ai trouvé un exemple qui fonctionne, ce qui me fait dire qu'il y a peut etre un soucis ailleurs...
voilà ma situation ;

if (sizeof($_POST['selectedURL[]'])==0)
{
echo "rien du tout ";
}

if(!empty($_POST["modifier"]))
{
echo "j'ai cliqué sur modifier "."<br>";
echo ">".$_POST['selectedURL']."<";
}

<form id="toolbox" name="toolbox" method="post" >

<form id="Add_bookmark" name="Add_bookmark" method="post" >
<input name="URL_to_book" type="text" class="Style_Normal" id="URL_to_book" value="" size="100" />
<input name="add_book" type="submit" class="Style_Normal" id="add_book" value="Ajouter le favori" />
</form>

<input name="modifier" type="submit" class="Style_Normal" id="modifier" value="Modifier" />

toutes mes checkbox :
<input type="checkbox" name="selectedURL[]" value="6398" />
<input type="checkbox" name="selectedURL[]" value="6398" />
</form>


Et voilà, bref, à chaque fois que je clic sur Modifier, je passe dans
echo "j'ai cliqué sur modifier "."<br>";
echo ">".$_POST['selectedURL']."<";
et selectedURL est vide...
help !
0
karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009 1
29 févr. 2008 à 01:38
arf, j'ai trouvé !
j'avais 2 form imbriquées, et ca marchait pas !
en tous cas, merci de m'avoir accordée un peu de ton temps
smack tout plein
0
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 24 > karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009
29 févr. 2008 à 10:45
Bonjour,

De rien en cas de problème n'hésite pas à me demander.

Bonne journée.
0
karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009 1 > jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010
4 mars 2008 à 03:28
coucou !

tadaaaa me revoilàààààà ! avec un nouveau soucis, mais je rassure le webmaster, c'est à propos des checkbox...

bref, j'ai fait comme on m'a dit... mes checkbox sont dans un tableau

<form name="monform">
<input type="checkbox" name="all"
onclick="selectall(document.monform.all,document.monform.choix)">
puis un liste de checkbox
<input type="checkbox" name="choix[]" value="1">
<input type="checkbox" name="choix[]" value="2">
<input type="checkbox" name="choix[]" value="3">
</form>

et je voudrais toutes les sélectionner... j'ai donc récupérer un javascript (merci google)
//checkbox ou une liste de checkbox.
function selectall(cas,choix){
//test si on a plusieur ligne
if(choix.length>0){
if (cas.checked){
for (var i=0; i<choix.length;i++){
choix[i].checked=true
}
}
else{
for (var i=0; i<choix.length;i++){
choix[i].checked=false
}
}
}
else{
if (cas.checked){
choix.checked=true
}
else{
choix.checked=false
}
}
}

mais je me suis aperçue que le javascript marchait pô... par contre, sans les crochets (voir ci dessous), il marche...

<form name="monform">
<input type="checkbox" name="all"
onclick="selectall(document.monform.all,document.monform.choix)">
puis un liste de checkbox
<input type="checkbox" name="choix" value="1">
<input type="checkbox" name="choix" value="2">
<input type="checkbox" name="choix" value="3">
</form>


mais du coup, c'est le php qui pêche ! Y a t il une autre méthode que celle ci ?

$mon_tableau = $_POST['choix'];
for($i=0; $i<sizeof($choix); $i++)
{ echo $mon_tableau[$i]; }

@+ bisoo

0
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 24 > karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009
5 mars 2008 à 19:21
Bonsoir,

Pourquoi tu ne fais pas tout cela en PHP, tu appel tes checkbox choix1, choix2 et choix 3 et quand tu clique sur le bouton tu appel un page de traitement où tu teste si les checkbox sont sélectionner.

$Compteur = 1;
$Nombre = 0;
while($Compteur < 3){
$Name = "choix".$Compteur;
if($_POST['$Name]!= ''){
$Nombre++;
}
$Compteur++;
}

et là la variable $Nombre t'indique le nombre de case cochée.

Bonne soirée.
0