bouton change de couleur en fonction bdd

Eléphant du PHP | 335 Messages

07 juil. 2005, 16:36

Bonjour

Je m'explique, j'ai une bdd avec un champ statut qui est soit a valide soit a invalide (invalide par defaut).
Lorsque je clique sur un bouton, certains de ces enregistrements passent a valide.

Je voudrais savoir comment faire pour que si mon statut est a invalide le bouton soit rouge et lorsque le statut est a valide le bouton soit vert??

Suis je assez clair?

Merci pour votre aide...

zzzzZZZZ
Invité n'ayant pas de compte PHPfrance

07 juil. 2005, 16:47

d'emblée:
il faudrait lire la valeur du champs "statut"
suivant sa valeur on applique un style CSS au bouton pour choisir sa couleur rouge ou vert.....

Eléphant du PHP | 335 Messages

07 juil. 2005, 16:50

oui c'est ce que je compte faire mais la question que je me pose c'est

comment lire le statut et lui dire qu'en fonction de ca on applique une couleur?

Eléphant du PHP | 66 Messages

07 juil. 2005, 17:06

Salut, bein lorsque tu as fait ta requête tu teste le statut comme zzzzZZZZ l'a expliqué. Voici le code.
if ($data['statut'] == 'valide')
   {
   echo"<INPUT TYPE='button' VALUE='Bouton' style='background-color:green'>";
   }
else
   {
   echo"<INPUT TYPE='button' VALUE='Bouton' style='background-color:red'>";
   }
Vas voir du côté des tutos alsace création pour voir comment afficher tes boutons en couleur.

;-)

EDIT: je t'ai rajouté les affichages du bouton

Eléphant du PHP | 335 Messages

07 juil. 2005, 17:23

merci pour ta réponse

mais comment faire pour que ce soit le bouton que j'ai cliqué précedemment qui change de couleur?

Eléphant du PHP | 66 Messages

07 juil. 2005, 17:29

Bein théoriquement, en cliquant sur le bouton, ta page se recharge, la requete se fait donc a nouveau, le champ statut ayant changé le bouton change de couleur.

Comment fonctionne ton script ? Que se passe t'il exactement lorsque tu clique sur le bouton ?

Eléphant du PHP | 335 Messages

07 juil. 2005, 18:10

cette ligne ne marche pas

if ($data['statut'] == 'valide')

question stupide : c'est $data que je dois mettre dans mon code??

Eléphant du PHP | 66 Messages

07 juil. 2005, 18:20

bein en fait $data correspond a ta requete, mais sans un bout de code ca va etre difficile de t'aider. Peut tu mettre le code ou se situe ton ou tes boutons et le code de ta requete (qui va chercher ton champ statut dans ta base).

Eléphant du PHP | 335 Messages

07 juil. 2005, 18:30

Voici mon code :
echo "<form name='valid' type='hidden' value='true' action='yearly.php'>";
	require_once('../Connections/arnis01.php');
	mysql_select_db("arnis01");  
	$str_requete = "SELECT tache FROM liste WHERE periodicite='Yearly'";
	$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>"; 
	if ($data['statut'] == 'valide') { 
   		echo"<input name='valid' type='submit' value='Year 2005' style='background-color:#3CB371'>"; 
   	} 
	else  { 
   		echo"<input name='valid' type='submit' value='Year 2005' style='background-color:#FFA07A'>"; 
   	} 
	}
	
if($valid=="Year 2005") 
{ 
	require_once('../Connections/arnis01.php');
	mysql_select_db("arnis01");  
	$requete = "UPDATE liste SET statut='valide' WHERE periodicite='Yearly'"; 
	$execution = mysql_query($requete) or die( 'Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}

Eléphant du PHP | 66 Messages

07 juil. 2005, 18:39

il faut selectionner le champ statut dans ta requete et mon $data correspond en fait a ton $a_result comme ceci.

echo "<form name='valid' type='hidden' value='true' action='yearly.php'>"; 
    require_once('../Connections/arnis01.php'); 
    mysql_select_db("arnis01");   
    $str_requete = "SELECT tache,statut FROM liste WHERE periodicite='Yearly'"; 
    $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>"; 
    if ($a_result['statut'] == "valide") { 
           echo"<input name='valid' type='submit' value='Year 2005' style='background-color:#3CB371'>"; 
       } 
    else  { 
           echo"<input name='valid' type='submit' value='Year 2005' style='background-color:#FFA07A'>"; 
       } 
    } 
     
if($valid=="Year 2005") 
{ 
    require_once('../Connections/arnis01.php'); 
    mysql_select_db("arnis01");   
    $requete = "UPDATE liste SET statut='valide' WHERE periodicite='Yearly'"; 
    $execution = mysql_query($requete) or die( 'Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
je pense que tout devrai fonctionner maintenant.

Eléphant du PHP | 335 Messages

07 juil. 2005, 18:46

ah merci bcp vince ca fonctionne!!!

mais j'ai encore un pti souci
en fait j'affiche une tache qui est dans ma base puis un bouton, une autre tache et un bouton,....

et lorsque je clic sur un bouton ce sont tous les boutons qui passent en vert alors que je voudrais que ce soit seulement celui que je clique.

est ce possible? comment faire?

merci

Eléphant du PHP | 66 Messages

07 juil. 2005, 19:04

Donc la boucle de ta requete affiche plusieurs résultats ? Si tout les boutons passent au vert, c'est que tout tes champs statut sont passé valide puisque la boucle passe en revue chaque enregistrement. tu me suis ? Vérifie les taches dans ta base pour voir si le statut correspond aux couleurs des boutons.

parceque ici
$requete = "UPDATE liste SET statut='valide' WHERE periodicite='Yearly'";
tu passes tout tes champs dont la periodicite est "yearly" a valide.

et ici
$str_requete = "SELECT tache,statut FROM liste WHERE periodicite='Yearly'"; 
tu selectionne les memes que tu viens de passer a valide pour les afficher.

Mammouth du PHP | 19672 Messages

07 juil. 2005, 19:05

...Vas voir du côté des tutos alsace création ...
Quelque chose me dit que tu n'as pas du les visiter beaucoup toi-même... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 66 Messages

07 juil. 2005, 19:10

...Vas voir du côté des tutos alsace création ...
Quelque chose me dit que tu n'as pas du les visiter beaucoup toi-même... :-k
Si je les ai visité et j'admet que je n'était pas tout a fait certain que ca y soit. C'est d'ailleur pour cela que j'ai édité et rajouter l'affichage des boutons avec les styles :wink:

Autant pour moi.

Eléphant du PHP | 335 Messages

07 juil. 2005, 21:17

Vince tu as raison lorsque je clique sur un bouton, ma requete passe a valide toutes les taches correspondant a 'Yearly' donc par conséquent tous les boutons.

Comment faire pour que lorsque je clic sur un bouton, le statut passe a valide juste pour la tache correspondante?

Merci encore