Réafficher la valeur de <input radio>

Eléphant du PHP | 65 Messages

28 févr. 2011, 16:29

Bonjour,

Je construis un formulaire dynamique par lequel
je charge une série de lignes d'articles qui s'affichent,
et à la fin de chaque ligne j'ai un groupe de bouton radio, comme ceci :
echo '<input type="radio" name="cd'.$i.'" value="c">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="d">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="0" checked>';

Le $i représente la numéro de ligne (cd0 représente la 1ère ligne, cd1 la 2ème...)

Quand je coche la valeur "d" par exemple, le 2ème bouton radio de la ligne est noirci.

Je voudrais après validation de mon formulaire que ce même bouton reste noirci.

L'action de post est sur la page courante.

Ma tentative (c'est là où je sèche !!!) :
if (isset($_POST['cd'.$i])) 
{ 
if ($_POST['cd'.$i] == ??? 
{ //là il me faudrait un checked
}
}

Pouvez-vous me guider ?

Cordialement
Jacques.

Eléphanteau du PHP | 12 Messages

28 févr. 2011, 21:49

Essaye ça :
<?php

echo '<input type="radio" name="cd'.$i.'" value="c"'. 
	((isset($_GET["ch{$i}"]) && $_GET["ch{$i}"]=='c') ? ' checked="cheched"' : '') .'> / ';
echo '<input type="radio" name="cd'.$i.'" value="d"'. 
	((isset($_GET["ch{$i}"]) && $_GET["ch{$i}"]=='d') ? ' checked="cheched"' : '') .'> / ';
echo '<input type="radio" name="cd'.$i.'" value="0"'. 
	((!isset($_GET["ch{$i}"]) || !$_GET["ch{$i}"]) ? ' checked="cheched"' : '') .'> / ';

Eléphant du PHP | 65 Messages

01 mars 2011, 00:41

Je ne connais pas cette écriture: ch{$i}

Merci seebz, mais ton code ne refixe pas les boutons au rechargement de la page (j'ai modifié $_GET pour $_POST).

Entre temps j'ai trouvé (en moins condensé mais qui fonctionne ):
if ($_POST['cd'.$i] == 'c') {
echo '<input type="radio" name="cd'.$i.'" value="c" checked="checked">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="d">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="0">';
} elseif ($_POST['cd'.$i] == 'd') {
echo '<input type="radio" name="cd'.$i.'" value="c">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="d" checked="checked">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="0">';
} else { //$_POST['cd'.$i] == '0'
echo '<input type="radio" name="cd'.$i.'" value="c">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="d">'.' / ';
echo '<input type="radio" name="cd'.$i.'" value="0" checked="checked">';
}

A+