[resolu]problème de checked avec les chekbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [resolu]problème de checked avec les chekbox

par gesualda » 31 août 2005, 14:33

Yep, c'est bon, ca marche pour les coches. j'ai fait:

Code : Tout sélectionner

name="musiq[1]" value="Musique_1"
if(isset($musiq[1])){echo 'checked="checked"';} 
Voila un problème de résolu.

Merci de votre aide, et je pense que j'en aurai encore besoin plus tard.

Bonne après midi

par ouckileou » 31 août 2005, 14:26

tu as essayé avec l'exemple que je t'ai donné ?

juste avant le débat :lol:

par gesualda » 31 août 2005, 14:19

Bon avec tout ca, moi j'ai toujours pas compris ou et comment mettre un indice, car j'en suis qu'au debut avec mes chekbox... :lol:

merci pour le débat

par truc » 31 août 2005, 14:15

j'ai pas dis le contraire ... a chacun sa façon de faire.
Perso qd jutilise un array => <input type="radio" ...

par ouckileou » 31 août 2005, 14:08

et personnellement je ne vois pas en quoi donner des noms différents à des checkbox simplifie la vie, au contraire

un groupe de checkbox concerne une même variable, avec plusieurs valeurs possibles

donc le tableau est tout indiqué et très pratique à utiliser :)

par gesualda » 31 août 2005, 14:03

oui, je sais ca ca fontionne, je l'ai testé, mais bon c'est peut pas comme ca que je vais faire avancer mes connaissances
:D :oops:

par truc » 31 août 2005, 14:01

Pour te simplifier la vie, si tu utilise des checkbox, tu peux donner des noms différents a chaque bouton dc pas besoin d'array... et ensuite faire un simple "if" sur la valeur

par ouckileou » 31 août 2005, 13:59

tu testes si musqi[0] vaut 0, mais si la case est cochée musqi[0] contiendra "Musique"
donc forcément le test n'est jamais vrai

essaye comme ça :
<form action="" method="post">
<input type="checkbox" name="musiq[]" value="Musique"
<?php if(isset($_POST['musiq']) && in_array('Musique', $_POST['musiq'])) {
   echo 'checked="checked"';
} ?> >Musique<br>
<input type="submit" name="ok" value="ok"> 
</form>

par gesualda » 31 août 2005, 13:54

Merci de vos réponse,

Pour HD,
exact, c'est pas très logique, mais comme je le disais, j'ai fait ce formulaire pour tester, car en fait, il entrera dans une serie de controle d'un autre formulaire, donc au lieu que le client remplissage à nouveau tout, il reste coché.(dans le cas du chekbox)

ouckileou, j'ai mis une valeur, et ca marche pas
name="musiq[0]" value="Musique"<?php if(isset($_POST['musiq[0]']) && $_POST['musiq[0]'] == 0 ){echo 'checked="checked"';} ?>
Désolé, j'ai regardé le lien et essaye de comprendre, mais je reconnais que j'ai encore beaucoup à saisir car j'ai ajouté une valeur et fonctionne pas

Merci de votre aide

par ouckileou » 31 août 2005, 12:57

parceque tu ne met pas d'indice de tableau dans tes tests :
&& $_POST['musiq[]'] == 'Musique_3' 
si tu ne mets pas d'indice dans l'attribut name, le tableau sera indexé automatiquement
par contre à la récupération tu as musiq[0], musqi[1]... etc

regarde cette fonction pour vérifier simplement si une valeur est contenue dans un tableau : in_array()

par HD » 31 août 2005, 12:52

y a un truc que je ne comprend pas : si le formulaire est envoyé et ses resultats recupérés, pourquoi la case du chekbox devrait rester cochée ?

[resolu]problème de checked avec les chekbox

par gesualda » 31 août 2005, 12:36

Bonjour

voila, mon problème est simple, lorsque le formulaire est envoyé, j'aimerai que la case du chekbox reste coché. J'ai donc construit ce script pour tester, ca me ressort bien les valeurs de chaque case et les affiches, mais la chekbox ne reste pas coché, pourriez vous m'expliquer pourquoi ?

Merci

Code : Tout sélectionner

<form action="" method="post"> <input type="checkbox" name="musiq[]" value="Musique"<?php if(isset($_POST['musiq[]']) && $_POST['musiq[]'] == 'Musique' ){echo 'checked="checked"';} ?> >Musique<br> <input type="checkbox" name="musiq[]" value="Musique_2"<?php if(isset($_POST['musiq[]']) && $_POST['musiq[]'] == 'Musique_2' ){echo 'checked="checked"';} ?>>Musique 2<br> <input type="checkbox" name="musiq[]" value="Musique_3"<?php if(isset($_POST['musiq[]']) && $_POST['musiq[]'] == 'Musique_3' ){echo 'checked="checked"';} ?>>Musique 3<br> <input type="checkbox" name="musiq[]" value="Musique_4"<?php if(isset($_POST['musiq[]']) && $_POST['musiq[]'] == 'Musique_4' ){echo 'checked="checked"';} ?>>Musique 4<br> <input type="submit" name="ok" value="ok"> </form>
<?php
$musiq = $_POST['musiq'];
if(isset($_POST['ok'])){
if(empty($musiq)){
echo "veuillez cocher une case";
}
else{
foreach($musiq as $num => $casecoche)	
echo $num.' : '. $casecoche."<br>";
}
}
?>