[Resolu][Formulaire] Cases à cocher

Voilà dans l’idée de faire quelque chose de “beau” j’aurais voulu remplacer la bête case à cocher par une case qui changerait de couleur quand on la sélectionnerait.
En fait ça serait un peu ça mais sans la boite à cocher.

Est ce réalisable ? Je pense bien que oui mans comment ? B)

Merci à tous B) pour votre aide
J’ai donc trouvé ce qu’il me fallait avec le javascript+php.

Pour ceux que ça intéresse voilà un article intéressant pour combinere Javascript et Php.

Je sais pas si c’est faisable, par contre, ce que je sais, c’est que les cases à cocher et les boutons radios sont standards et compris par les utilsateurs. Ton idée beaucoup moins.

Si j’ai bien compris, oui c’est faisable.
cafzone version actuelle -1 utilisait ça pour les forums.
dans une table, tu déclenche l’evenement avec la propriété onclick sur un td et hopla !

[quote=“fser, post:3, topic: 30911”]Si j’ai bien compris, oui c’est faisable.
cafzone version actuelle -1 utilisait ça pour les forums.
dans une table, tu déclenche l’evenement avec la propriété onclick sur un td et hopla ![/quote]

Mais est ce qu’on peut associer ça avec un fomulaire ? Un petit bout de code m’aiderai B)
Oui oui je suis une quiche B)

[quote=“olivarius, post:4, topic: 30911”]Mais est ce qu’on peut associer ça avec un fomulaire ? Un petit bout de code m’aiderai B)
Oui oui je suis une quiche B)[/quote]

utilise un champs de type ‘hidden’ que tu set lorsq’un utilisateur effectue un choix (désolé, pas trop le temps là pour le bout-de-code-qui-va-bien)

(purée, vous etes tous super fort, moi j’ai meme pas compris ce qu’il veut. Moi j’ai compris qu’il veut une case a cocher qui change de couleur, mais sans la case a cocher, mais dans un formulaire)

(accessoirement, je vois pas l’interet)

C’est fou ce que je dois être clair B)

En gros je veux un calendrier avec l’ensemble des numeros d’une semaine et je veux que les gens puissent sélectionner une ou plusieurs de ces semaines en clickant dessus.

J’ai fait ce petit bout de code : Ca marche mais c’est un peu sale. J’aurais voulu faire ça de façon plus dynamique sans devoir recharger la page.

[code]<?php
echo "Test d’un formulaire
";

for ($i=1; $i <=20; $i++) $cas[$i] = isset($cas[$i]) ? $cas[$i] : 0;

$lien = $_SERVER[REQUEST_URI]."?";

echo “

”;
for ($i=1; $i <=20; $i++) {
if ($cas[$i] == 1) {
$color = “green”;
echo “<td BGCOLOR=”$color"><a href="".$lien."&cas[$i]=0"> $i “;
} else {
$color = “yellow”;
echo “<td BGCOLOR=”$color”><a href="".$lien."&cas[$i]=1"> $i ";
}
if (!($i%5)) echo "</tr><tr>";

}
echo “

”;

?>[/code]

C’est un peu crade mais ça marche très bien B)

Un truc comme ça ? http://code-libre.org/fser/table.html
(fait super vite donc c’est peut etre pas ça …)

edit : commentaire sur le code ci dessus : je te propose juste ton code, en “plus propre”

[code]<?php
echo 'Test d’un formulaire
';

for ($i=1; $i <=20; $i++)
$cas[$i] = isset($cas[$i]) ? $cas[$i] : 0;

$lien = $_SERVER[REQUEST_URI]."?";

echo ‘

’;

for ($i=1; $i <=20; $i++)
{
if ($cas[$i] == 1)
{
$color = ‘green’;
echo ‘

';
} else {
$color = ‘yellow’;
echo ‘';
}
if (!($i%5)) echo '</tr><tr>';

}
echo ‘

<a href="’, $lien, ‘"&cas[’, $i, ']=0> ‘,$i,’ <a href="’, $lien, ‘"&cas[’, $i, ‘]=1">’, $i, ’
’;

?>[/code]

note : j’ai rien changé à l’algo …

[quote=“fser, post:8, topic: 30911”]Un truc comme ça ? http://code-libre.org/fser/table.html
(fait super vite donc c’est peut etre pas ça …)[/quote]

J’aime bien ton code en javascript mais comment je fais pour “noter” les cases qui ont été clickées ? Comment je fais passer des paramètres de javascript -> php ?

Voilà une solution : Fancy checkboxes and radio buttons
Tu peux remplacer les checkboxes et les radio buttons par les images de ton choix. Gros avantage, le formulaire reste accessible sans javascript. Tu peux le voir en action sur le site du jeu Hellgate: London.

[quote=“cedric, post:10, topic: 30911”]Voilà une solution : Fancy checkboxes and radio buttons
Tu peux remplacer les checkboxes et les radio buttons par les images de ton choix. Gros avantage, le formulaire reste accessible sans javascript. Tu peux le voir en action sur le site du jeu Hellgate: London.[/quote]

Merci ça à l’air sympa mais dans mon cas en fait je ne veux plus les checkbox pour gagner de la place et non parce qu’elles sont moches B)

C’est résolu voilà le code complet :

[code]
.cell {
background-color: green;
}

	.none {
	border-style:none;
	background-color: white;
	}
	
	.bouton {
	background-color: grey;
	}
<?php echo "Les semaines suivantes ont été choisies :
"; for ($i = 1; $i <= 54; $i++) { if (isset($Tab[$i])) { $Tab[$i] = $Tab[$i]; echo "$i||"; } } echo "
"; ?> <?php for ($i = 1; $i <= 54; $i++) { echo ""; if (!($i%10)) echo ""; } ?>
$i
Envoyer
[/code]

Si vous avez des remarques quant à la propreté du code n’hésitez pas. Je suis autodidacte et j’ai encore beaucoup à apprendre.

oui les echo " c’est MAL

Et je fais comment ? je ferme le php et je le réouvre ? C’est beaucoup mieux ?
Qu’est ce que je peux faire à la place d’un echo ? un print ?

[quote=“olivarius, post:13, topic: 30911”]Et je fais comment ? je ferme le php et je le réouvre ? C’est beaucoup mieux ?
Qu’est ce que je peux faire à la place d’un echo ? un print ?[/quote]

Non, utilise la syntaxe alternative.

Il me semble que ça marche aussi avec les accolades { } mais peut être est ce moins compatible ?

bonjour,

non, fser voulait dire qu’il faut utiliser le echo ’ ’ (simple quote).
Si tu fais un echo « blabla $var blabla »;, php va chercher a interpréter tous les éléments entre les doubles quotes, ce qui sur un nombre d’itération suffisement élevé se ressent dans l’interprétation.
Alors que echo ‹ blabla › , $var , ‹ blabla ›; est la méthode « rapide », php n’interprète pas ce qu’il y a entre les simple quote, et se contente d’afficher. Enfin l’utilisation de la virgule plutot que le point, c’est pour eviter la concaténation avant affichage.
Voila, ya rien de mal à utiliser les echo «  » si ya 20 visites par jours sur ton site.

a bientot

EDIT :
exemple concret (car je m’explique pi être mal)

echo "<td class=\"cell\" onclick=\"java script:change(this,$i);\">$i</td>";

devient

echo '<td class="cell" onclick="change(this,' ,$i, ');">' ,$i, '</td>';

jul16ar > pour ton édit t’as dû te fouler apres ma réponse ci ci dessus B)
mais c’est effectivement de ça que je veux parler et pas de la syntaxe plus qu’alternative B)