Checkbox

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2013, 11:47

Bonjour,

J'ai besoin de votre aide. En gros, je récupère des données de ma base de données et je veux pouvoir modifier. C'est c'est checkbox, donc je veux pouvoir quand je valide le formulaire la case reste cochée.
<?php
while($res=mysql_fetch_row($requete)){
		?>
<td><input type="checkbox"  name="checkbox[]" <?php if($res[2] == 1) echo 'CHECKED="checked"';?>  <?php echo "value=\"" .$res[0]. "\""; ?>/></td>
<?php			
} 
?>
J'ai trouvé ceci mais ça ne marche pas...
<td><input type="checkbox" name="checkbox[]" <?php echo "value=\"" .$res[0]. "\""; if (isset($_POST['checkbox']) && is_array($_POST['checkbox']) && in_array($res[0],$_POST['checkbox'])) echo 'checked="checked"'?> /></td>
Merci de m'éclairer.

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2013, 15:28

Rebonjour,

J'ai pensé à mettre des radios à la place des checkbox parce qu'en fait je ne dois en coché qu'une case mais ça ne marche pas. J'ai rien trouvé du style sur internet.
En gros pour chaque enregistrement de ma table je veux qu'il y ait un certain nombre de choix comme ceci
http://www.lehtml.com/htmlplus/fmradio.htm

Le problème que j'ai c'est que c'est en colonne que j'ai les cases.
Merci de votre aide

Mammouth du PHP | 504 Messages

10 oct. 2013, 15:36

J'ai pas tout compris à ta demande:

tu peux etre plus clair sur Le problème que j'ai c'est que c'est en colonne que j'ai les cases ?? ça veut dire quoi?

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2013, 15:46

Re,

Pardon, j'avoue c'est pas clair du tout.
En gros, je veux pour chaque enregistrement de ma table avoir la possibilité de cocher un radio style oui ou non.

Mammouth du PHP | 504 Messages

10 oct. 2013, 15:59

imaginons dans ta table tu as un champ valeur qui est égale à 1 ou 0

1 est une valeur coché et 0 une valeur non coché.

Comme tu l'as fait auparavant, tu contitionnes l'affichage de "checked" dans l'expression ci dessous en fonction de la valeur de ton champ avec un if par exemple:
<INPUT type= "radio" name="tarif" value="jour" checked> tarif de jour
au passage, j'écrirai plus ton expression d'un if comme ceci: (les acollades, c'est important)
if ($res[2] == 1){
	echo 'CHECKED="checked"';
	}

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2013, 16:09

En fait ce que je veux pouvoir avoir par exemple
durand patrick (trois cases du genre marié, veuf ou célibataire) et ainsi de suite pour chaque personne tout ça dans une boucle while qui me récupère mes personnes et leurs situations que je pourrais changer.
Mais je ne sais pas comment faire.

Mammouth du PHP | 504 Messages

10 oct. 2013, 16:19

Oui, tu peux avoir tout ça. ça dépend de ta structure de base de données. Si ces données sont stockées dans ta base, je ne vois pas le soucis.

Il suffit de comme tu dis, d'écrire ta requete SQL, faire un while et puis le tour est joué.

Comment faire... déjà recupére ces infos dans ta bdd par une requete. :wink:

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2013, 16:27

C'est ce que j'ai fais voici
<?php
			while($res=mysql_fetch_row($requete)){
		?>
			<td><input type="radio"  name="celibataire[]" <?php if($res[2] == 1) echo 'CHECKED="checked"';?>  <?php echo "value=\"" .$res[0]. "\""; ?>/></td>
			<td><input type="radio"  name="marie[]" <?php if($res[2] == 2) echo 'CHECKED="checked"';?>  <?php echo "value=\"" .$res[0]. "\""; ?>/></td>
                        <td><input type="radio"  name="veuf[]" <?php if($res[2] == 3) echo 'CHECKED="checked"';?>  <?php echo "value=\"" .$res[0]. "\""; ?>/></td>
			<?php
			
		} 


		?>
Mais le problème c'est que mon radio fonctionne en vertical au lieu de la horizontal

Mammouth du PHP | 504 Messages

10 oct. 2013, 16:59

1/ Tu es sur de ta requete sur la base $requete, c'est exact elle te renvoi bien un résultat ?
2/ je ne vois toujours pas d'accolade ?
3/ si je reprends ton exemple:
<INPUT type= "radio" name="tarif" value="jour" checked>


Et toi, tu essaies:
<input type="radio"  name="celibataire[]" <?php if($res[2] == 1) echo 'CHECKED="checked"';?>  <?php echo "value=\"" .$res[0]. "\""; ?>/>
Il y une différence plus que notable.

4/ Enfin, je ne comprend pas, les valeurs name de tes boutons: name="celibataire[]", name="marie[]", name="veuf[]" ?

Pourquoi les nommé tous différement et en plus en créant un tableau ? a moins qu'aprés tu ais d'autres oéprations à faire dessus, j'aurai plutot suivi le tuto que tu proposes, donc, un truc du genre:
<input type="radio"  name="situation_famille[]" ... valeur="celib"
<input type="radio"  name="situation_famille[]" ... valeur="marie"
etc....

Invité
Invité n'ayant pas de compte PHPfrance

11 oct. 2013, 11:07

Bonjour,

J'ai essayé la solution, mais toujours rien c'est-à-dire que le radio fonctionne en ligne et en colonne, en gros mon
<?php if($res[2] == 1) echo 'CHECKED="checked"';?>
me permet de cocher la case en fonction de ce que j'ai dans la base.
J'ai plusieurs tableaux parce que chaque tableau contient les données pour un critère(celibataire, marie, veuf).

Invité
Invité n'ayant pas de compte PHPfrance

11 oct. 2013, 12:04

Rebonjour,

J'ai réussi à faire mes radios comme je voulais mais maintenant que je veux modifier je ne sais pas comment faire.
			<input type="radio"  <?php echo "name=\"" .$res[0]. "\"";?>  <?php echo "value=\"" .$res[0]. "\""; ?><?php if($res[2] == 1) {echo 'checked';}?> />
Normalement je devrais faire un isset($_POST['name'] mais je ne vois pas comment faire dans mon cas...

Pourriez-vous m'aider svp.

Invité
Invité n'ayant pas de compte PHPfrance

17 oct. 2013, 10:43

Bonjour,

J'ai besoin de votre aide. Je veux récupérer la valeur de mes radios pour le traitement du formulaire or je ne trouve que ce genre d'aide sur internet.
<input type="radio" id="aller" name="choix" value="aller" /> Aller 
<input type="radio" id="retour" name="choix" value="retour" /> Retour
<?php
echo $_POST['choix'];
?>
Alors que moi j'ai ceci
  <input type="radio"  <?php echo "name=\"" .$res[0]. "\"";?>  <?php echo "value=\"" .$res[0]. "\""; ?><?php if($res[2] == 1) {echo 'checked';}?> />
 
Je sais pas comment récupérer mon name dans le $_POST.

Merci de votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

17 oct. 2013, 10:59

la comme ça ce n'est pas possible.

utilise plutôt la notation tableau du genre
<?php 
echo '<input type="radio"  name="truc[' .$res[0].']" .... />';
ensuite tu auras un tableau dans $_POST['truc'] que tu peu facilement utiliser (foreach, for, while etc etc)

@+
Il en faut peu pour être heureux ......

Invité
Invité n'ayant pas de compte PHPfrance

17 oct. 2013, 11:37

Merci moogli pour ta réponse, finalement j'ai fais ce que tu m'as dis et quand je récupère j'ai fais ceci or ça ne marche que pour la premier colonne de radio (celibataire, marie, veuf).
	if(isset($_POST['truc'])){
	$truc = $_POST['truc'];
	$id = "('" . implode( "','", $truc ) . "');" ;
			$sql="UPDATE membre set situation='0' WHERE id = $id";
			mysql_query($sql);
	}


Invité
Invité n'ayant pas de compte PHPfrance

24 oct. 2013, 12:07

Bonjour,

Je suis toujours bloqué... quand je valide un choix tous les membre ont la même valeur, ils deviennent tous célibataires.
Aidez-moi svp