bouton change de couleur au clic??

Eléphant du PHP | 335 Messages

05 juil. 2005, 09:49

Bonjour,

Je voudrais savoir comment faire pour que lorsque l'utilisateur clic sur un bouton, une fenetre de dialogue apparaisse.

Et si l'utilisateur repond oui a la question, comment faire faire pour que le bouton soit d'une autre couleur?

Merci

Eléphanteau du PHP | 27 Messages

05 juil. 2005, 10:38

Dans les balises <head></head>

Code : Tout sélectionner

<script language="javascript"> function conf() { var oui = confirm('Choisissez ok ou annuler'); if(oui == true) { document.getElementById("change_confirm").style.color='#ffffff'; document.getElementById("change_confirm").style.background='#000000'; } if(oui == false) { document.getElementById("change_confirm").style.color='#000000'; document.getElementById("change_confirm").style.background='#ffffff'; } } </script>
Et dans le body, là où tu veus:

Code : Tout sélectionner

<input type="button" style="border: 1px solid black; background-color: #fff;" id="change_confirm" onclick="conf();" value="clik" /><br />

Eléphant du PHP | 335 Messages

05 juil. 2005, 10:56

Merci bcp pour ton aide, c'est exactement ce que je voulais.

Mais j'ai un probleme :
en fait, j'ai fait une boucle pour afficher plusieurs boutons et lorsque je clique sur l'un des boutons c'est toujours et uniquement le premier qui change de couleur.

Qqn sait d'ou vient ce probleme?

Merci

Eléphanteau du PHP | 27 Messages

05 juil. 2005, 11:43

Oui le problème vient de l'id du bouton.
Pour ta boucle (elle est en php je pense?) tu peut faire comme ça:

<input type="button" style="border: 1px solid black; background-color: #fff;" id="change_confirm" onclick="conf();" value="clik" /><br />
while($i < 12)
{
$i++;
echo '<input type="button" style="border: 1px solid black; background-color: #fff;" id="mon_id'.$i.'" onclick="conf(\'mon_id'.$i.'\');" value="clik" /><br /> ';
}

Et dans la fonction en javascript:

Code : Tout sélectionner

function conf(id) { var oui = confirm('Choisissez ok ou annuler'); if(oui == true) { document.getElementById(id).style.color='#ffffff'; document.getElementById(id).style.background='#000000'; } if(oui == false) { document.getElementById(id).style.color='#000000'; document.getElementById(id).style.background='#ffffff'; } }
J'espère que tu comprends commentje procède, et si tu veux une précision, demande :wink:

Eléphant du PHP | 335 Messages

05 juil. 2005, 12:03

Merci bcp birslip!

J'ai modifié mon code et ca fonctionne! Encore merci!

Mais j'ai un problème qui se pose maintenant, et je n'y avais pas du tout pensé!

Comment faire pour que les boutons que je choisi de changer de couleur reste tel quel si je reviens sur ma page?
Il faudrait que les boutons qui ont changé de couleur soit "enregistré".

Merci.

PS : Dites le moi si je ne suis pas assez clair...

Eléphanteau du PHP | 27 Messages

05 juil. 2005, 12:50

Pour ça il faut que tu l'enregistre dans une base de données. Je vais pas tout te faire non plus ^^

Eléphant du PHP | 335 Messages

05 juil. 2005, 13:49

Juste une question :
omment faire pour enregistrer un bouton dans une base de donnée?!

Merci...

Eléphant du PHP | 335 Messages

05 juil. 2005, 14:32

En fait mon probleme de la boucle n'est pas resolu!

Je m'explique :
je fais appel a un champ de ma base de donnée, j'affiche la première valeur de ce champ puis des boutons.
ensuite j'affiche la deuxième valeur de ce champ puis des boutons.
etc...

lorsque je clic sur le bouton 5 de la deuxième valeur de mon champ, c'est le bouton 5 de la première valeur qui change de couleur!!

qqn sait d'ou peut venir l'erreur?

voici mon code :
mysql_select_db("arnis01");  
$str_requete = "SELECT tache FROM liste WHERE periodicite='Daily'";
$o_result = mysql_query($str_requete) or die( 'Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); ; 
while ($a_result = mysql_fetch_array($o_result)) {
echo "<b>".$a_result["tache"]."</b>"; 
for($i = 1; $i <= 12; $i++){
echo '<input type="button" style="width:27px; background-color: #FFA07A;" id="mon_id'.$i.'" onclick="conf(\'mon_id'.$i.'\');" value="'.$i.'" />'; 
}
}
Merci