28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Lors d'utilisation d'un formulaire utilisant des boutons radios, je voudrais savoir comment faire pour modifier la couleur du texte derrière le bouton en fonction de sa valeur.
Je vais m'expliquer par du code, ce sera plus simple.

Voici donc mon code php utiliser pour générer trois boutons radio

  
		  $civ_mem = array('Membres','Accesseur','Bureau');
		  $titre = isset($_POST['mem_cat']) ? $_POST['mem_cat'] : null;
		  $cnt = count($civ_mem); 
		  for($i=0; $i<$cnt; $i++){
		  $checked = $titre == $civ_mem[$i] ? " checked = \"checked\"" : null;
		  echo "<input onclick=\"grise(this.form.mem_cat)\" type=\"radio\" name=\"mem_cat\" value=".$civ_mem[$i]." ". $checked." />" .$civ_mem[$i]."<br />"; 
		  } 
[code]

En fonction du bouton cocher, lors d'un rafraichissement de l'écran, je souhaiterai une couleur différent de la valeur de "[code]$civ_mem[$i]
.

Ma question est simple: est ce possible ?

Merci de votre aide.
Modifié par gesualda (31 Mar 2009 - 07:28)
Salut,

pas sûr d'avoir bien compris mais à priori il suffirait d'affecter une class css en fonction de la valeur (de la même façon que tu gères le checked="checked")...
Bonjour Heyoan,

Tout d'abord merci d'avoir pris un peu de temps pour répondre.

En je vais être plus explicite ; dans ce cas de figure il y a trois appel affichés du tableau (array), et le but c'est lors du contrôle formulaire, il soit affecté en couleur exp: rouge pour pointer l'erreur.

si j'affecte une class ainsi c'est l'ensemble des valeurs qui passera au rouge et non pas la valeur pointée et incidence null si je mets une class à la balise.


<input onclick=\"grise(this.form.mem_cat)\" type=\"radio\" name=\"mem_cat\" value=".$civ_mem[$i]." ". $checked." />[b]<span class="\rouge\">" .$civ_mem[$i]."</span>[/b]<br />";
gesualda a écrit :
si j'affecte une class ainsi c'est l'ensemble des valeurs qui passera au rouge et non pas la valeur pointée et incidence null si je mets une class à la balise.
C'est pour ça que je parlais de ré-effectuer un test.

Là je suis dans le flou puisque je ne connais pas les cas d'erreurs possibles mais en gros tu pourrais utiliser un array $erreur correspondant aux valeurs possibles de $civ_mem et valant true ou false. Ensuite tu fais dans ta boucle :
for($i=0; $i<$cnt; $i++){
	$class_erreur = $erreur[$i] ? 'class="erreur"' : '';
	$checked = $titre == $civ_mem[$i] ? " checked = \"checked\"" : null;
	echo '<input '.$class_erreur.' onclick="grise(this.form.mem_cat)" type="radio" name="mem_cat" value="'.$civ_mem[$i].' '. $checked.' />'.$civ_mem[$i]."<br />\n"; 
} 
Bonjour Heyoan

Voila je suis partie de ta dernière explication et pour faire fonctionner j'ai procédé comme suit :

.rouge{
   color: #F00;
}


et ajouter la valeur comme cela:


$checked = $titre == $civ_mem[$i] ? " checked = \"checked\"" : null;
		  $erreur_class = $titre == $civ_mem[$i] ? " class= \"rouge\"" : null;
		  echo "<input type=\"radio\" name=\"mem_cat\" value=".$civ_mem[$i]." ". $checked." /><span ".$erreur_class.">" .$civ_mem[$i]."</span><br />"; 


Cela fonctionne, voila et merci pour l'idée.
Smiley cligne