Input radio et tableau array

Résolu/Fermé
delaville81 Messages postés 188 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 avril 2024 - 17 déc. 2013 à 11:32
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 17 déc. 2013 à 16:08
Chers confrères,
Pour me forcer à utiliser plus les tableaux php (Je les ai en horreur), j'ai créer 3 tableau différents pour la gestion des mes parcelles.
Pour chaque actions, j'ai un bouton radio "a faire" = 0, "effectué" = 1
Supposons que toutes les actions sont à faire.
Le problème et qu'avec les tableaux, il n'y a que le dernier des travaux où le radio "a faire est coché".
Auriez vous une idée pour remédier à ce problème.

		for($i=0;$i<count($tab_annee);$i++)
		{
		echo '<tr>'; 
		echo '<td>'.$tab_lib[$i].'</td>'; 
		echo '<td>'.$tab_annee[$i].'</td>';
		if ($tab_trav[$i] == 0){
			echo '<td BGCOLOR="red">     ';
		}else{
			echo '<td BGCOLOR="green">     ';
		}
		echo '</td>';
		echo '<td>';
		?>
			<input type="radio" name="<?php echo $tab_trav[$i]; ?>" value="0" <?php if ($tab_trav[$i]  == 0) {echo ' checked="checked"';} ?> /><span id=text_rouge> A faire </span> 
			<input type="radio" name="<?php echo $tab_trav[$i]; ?>" value="1" <?php if ($tab_trav[$i]  == 1) {echo ' checked="checked"';} ?> /><span id=text_vert> Effectué </span>
		<?php 
		echo '</td>';		
		echo '</tr>';
		
		}
		
		echo '</table>';


Merci d'avance


A voir également:

7 réponses

maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 11:53
bonjour,

pourrais tu nous donner le code html des input radio généré pour controler les name de chacun
0
delaville81 Messages postés 188 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 avril 2024
17 déc. 2013 à 12:07
Cher Maka54,
Ta question m'a fait réfléchir, le name de mon input était 0, voila pourquoi ça ne marchait pas.
J'ai corrigé ça mais un problème persiste, j'ai mis dans ma bases de données les 2 premiers travaux à 1 (effectué) aucun des input ne sont checked.
J'aurais encore besoin de cotre aide
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 12:15
le code de ton tableau est bizarre ... je m'explique

tu boucles un tableau sur $tab_annee

et dans ta boucle on a ces données :

$tab_lib[$i] et $tab_trav[$i]

tu as créés 3 tableaux ? (où l'on retrouverais la meme clé $i ?? )

il doit y a voir une facon beaucoup plus simple de faire je pense

pourrais tu mettre le detail de ce que tu recuperes en base de données, stp
0
delaville81 Messages postés 188 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 avril 2024
17 déc. 2013 à 12:21
Pour le moment, je ne fais aucun update dans ma base. Je teste en remplissant directement dans la base de données.
De plsu spour corrigé le premier problème j'ai ajouté un tableau

$tab_annee = array($annee,($annee+5),($annee+8),($annee+15),($annee+21),($annee+26),($annee+32),($annee+45));
		
$tab_trav = array( $preparation, $depressage,$entretien,
 $eclairecie1, $eclairecie2,$eclairecie3,$eclairecie4,$coupe);
						   
$tab_name = array( 'preparation', 'depressage', 'entretien', 'eclairecie1', 'eclairecie2', 'eclairecie3', 'eclairecie4' ,'coupe');
		 
		$tab_lib = array("Préparation du sol et reboisement",
		"Dépressage et entretien du jeune boisement (1)",
		"Dépressage et entretien du jeune boisement (2)",
		"Première éclaircie",
		"Deuxième éclaircie",
		"Troisème éclaircie",
		"Quatrième éclaircie",
		"Coupe rase");

0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 13:49
çà m'a l'air compliqué ton histoire ...

d'ou viennent et que contiennent les variable dans $tab_trav ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 12:30
et tant qu'on y est une petite astuce sympa


tu peux utiliser un label avec tes input pour les personnaliser

ps: un id doit etre unique, ici tu dois donc utilisé des classes

<input type="radio" name="name" value="0"  /><span id=text_rouge> A faire </span> 
<input type="radio" name="name" value="1" /><span id=text_vert> Effectué </span>

à la place, tu peux faire :


<label class="radio rouge"><input type="radio" name="name" value="0" />A faire</label>
<label class="radio vert"><input type="radio" name="name" value="1" />Effectué </label>

le texte sera cliquable et tu peux cacher les bouton radio

label.radio{
// un design de base pour tes labels
}

label.radio > input{
display:none; // tu caches des input
}

label.radio.vert > input:checked{
background:green; // tu personnalises le bouton vert lorsqu'il est coché
}

label.radio.rouge> input:checked{
background:red; // tu personnalises le bouton rouge lorsqu'il est coché
}
0
delaville81 Messages postés 188 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 avril 2024
17 déc. 2013 à 12:51
Merci
Ton truc est bien, mais je n'ai pas la couleur
J'ai bien mais le style dans ma page .CSS qui est appellé

<label class="radio rouge">
<input type="radio" name="<?php echo $tab_name[$i]; ?>" value="0" <?php if ($tab_trav[$i] == 0) {echo "checked";} ?> />
A faire  </label>
<label class="radio vert">
<input type="radio" name="<?php echo $tab_name[$i]; ?>" value="1" <?php if ($tab_trav[$i] == 1) {echo "checked";} ?> />
Effectué </label>


qu'ai donc fait de travers
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 17/12/2013 à 14:00
essaye en remplacant :

input:checked
par
input[type="radio"]:checked

edit: cela ne sert à rien ...
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 14:00
correction, ajouter un balise span au libelle "à faire" ou "effectue" comme ceci

<label class="radio vert">
<input type="radio" name="name" value="1" />
<span>Effectué</span>
</label>

et le code css comme ceci

label.radio.vert > input:checked + span {
background:green; // tu personnalises le bouton vert lorsqu'il est coché
}

label.radio.rouge > input:checked + span {
background:red; // tu personnalises le bouton rouge lorsqu'il est coché
}

l'erreur est toute bete, le style etait appliqué au bouton radio, que l'on a justement caché, en ajoutant une balise (ici span) on applique maintenant le style au span qui contiendra le libellé du bouton
0
delaville81 Messages postés 188 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 avril 2024
17 déc. 2013 à 16:06
Maka,
Merci pour ton aide,
ça fonctionne parfaitement.
C'est encore mieux avec ton label et CSS

Merci encore
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2013 à 16:08
de rien

bonne continuation
0