bouton change de couleur en fonction bdd

Eléphant du PHP | 66 Messages

07 juil. 2005, 21:56

Je te conseille de tout mettre sur la meme page, si ce n'est deja fait.

Il faut que chaque passage de la boucle gère un formulaire qui renvoie une variable dans l'url.

Je suppose que tu as un champ ID dans ta table liste ou un champ unique qui identifie l'enregistrement ? Sinon crée en un. ici pour l'exemple on va l'appelé ID. C'est cet ID qui va servir a definir quel enregestrement doit changer dans la base.

Et voici comment j'aurai vu ton code
<?
require_once('../Connections/arnis01.php'); 
mysql_select_db("arnis01");   
// on teste si un ID est contenu dans l'url
if(isset($_GET['id']))
	{
	// si oui on met le statut a valide
    $requete = "UPDATE liste SET statut='valide' WHERE id='".$_GET['id']."'"; 
    $execution = mysql_query($requete) or die( 'Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
	}
// On fais la requète en prenant compte de l'ID
$str_requete = "SELECT id,tache,statut FROM liste WHERE periodicite='Yearly'"; 
$o_result = mysql_query($str_requete) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
// la boucle qui affiche les taches et les boutons
while ($a_result = mysql_fetch_array($o_result)) 
	{
	// on ouvre le formulaire qui renvoie l'url qui contient l'ID de l'enregistrement en cours.
	echo "<form name='valid' type='hidden' value='true' action='yearly.php?id=$a_result[id]'>";  
    echo "<b>".$a_result["tache"]."</b>"; 
    // On teste le statut pour la couleur du bouton
	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'>"; 
       	} 
	// on oublie pas de fermer le formulaire.
	echo"</form>";
    }
?>
Maintenant j'ai une question ?

lorsque tu clique sur un bouton vert, veux tu qu'il devienne rouge ? donc qu'il passe a invalide ?

EDIT;

Autre chose, j'ai supposer ici que tout ton code se situait sur la page "yearly.php" si ce n'est pas le cas, il n'y a pas grand chose a modifier pour resoudre le probleme.

Eléphant du PHP | 335 Messages

08 juil. 2005, 11:31

Merci pour ta réponse.

J'ai regarder ton code hier soir et je l'ai testé ce matin, j'ai du modifier une ou deux petites choses mais rien de bien méchant!! lol

Pour répondre a ta question, oui j'aimerais bien savoir comment faire pour que lorsque je clic sur un bouton vert, il devienne rouge.

Merci bcp

Eléphant du PHP | 66 Messages

08 juil. 2005, 18:22

Pour faire l'inverse avec le bouton il suffit de tester le statut de l'enregistrement et de le changer. Donc tu crée une requete qui te renvoie le statut de ta tache (qui correspond a l'id renvoyée dans l'url). Si la statut est valide, tu le passe a invalide et s'il est invalide tu le passe a valide.

Pour ton probleme de deuxieme bouton, je te conseille vivement de virer le formulaire et de creer deux image boutonvert.gif et boutonrouge.gif et a la place de tes <input> faire des

Code : Tout sélectionner

<a href='six-monthly.php?id=$a_result[id]'><img src='boutonvert.gif'></a>
ou pareil avec bouton rouge.

ca sera deja beaucoup plus clair car je ne vois pas l'utilité d'un formulaire dans ton code, alors qu'une simple image avec un lien suffit et c'est bien plus simple.

:wink:

Eléphant du PHP | 335 Messages

09 juil. 2005, 16:22

Merci pour ta réponse.

J'ai créer deux images et fais ce que tu m'as conseillé.
Mais mon problème principal est que lorsque je clique sur le premier bouton et bien ce sont les deux qui changent de couleur!
Or je voudrais que ce soit seulment le bouton sur lequel on clic qui change de couleur!

Cmt faire?

Merci