calou80 Posté 24 Septembre 2005 Posté 24 Septembre 2005 Bonjour, débutant en php et mysql je cherche un petit renseignement: comment passer 4 valeurs possibles à un champ avec 4 boutons ( du type de ceux que l'on trouve dans les formulaires ). Je m'explique: je voudrais pouvoir passer 4 valeurs possibles ( 0, 1, 2 ou 3 ) à un champ ( de type ENUM ? ) selon si on appuie sur le bouton 1, le bouton 2 ... En fait, si j'appuie sur le bouton 1 le champ prendra la valeur 1, si j'appuie sur le bouton 2 le champ prendra la valeur 2 etc etc ... Ai-je été clair ? Merci d'avance.
Jan Posté 24 Septembre 2005 Posté 24 Septembre 2005 Bonjour, Tu peux utiliser ce code et l'adapter à ton besoin: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Champ modifiable par des boutons</title></head><body><form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><p><label for="champ_modifiable">Champ modifiable par des boutons:</label><br /><input type="text" size="50" name="champ_modifiable" id="champ_modifiable" value="<?phpif (isset($_POST["bouton1"])) { echo "valeur 1";}elseif (isset($_POST["bouton2"])) { echo "valeur 2";}elseif (isset($_POST["bouton3"])) { echo "valeur 3";}elseif (isset($_POST["bouton4"])) { echo "valeur 4";}?>" /></p><p><input type="submit" name="bouton1" value="Bouton 1" /><input type="submit" name="bouton2" value="Bouton 2" /><input type="submit" name="bouton3" value="Bouton 3" /><input type="submit" name="bouton4" value="Bouton 4" /></p></form></body></html>
Anonymus Posté 24 Septembre 2005 Posté 24 Septembre 2005 Bonjour, Le code de jan devrait te convenir, cependant ce que tu veux faire ne correspond pas à ce qu'attend un utilisateur. Pour faire un choix (et un seul) parmi une liste de choix, on utilise habituellement le bouton 'radio'. Par exemple, pour choisir la civilité (homme ou femme), ce sont des 'boutons radio', et non des boutons 'submit'. Pour utiliser un bouton radio, c'est le code suivant : <input type=radio name=choix value=1> <input type=radio name=choix value=2> etc..
calou80 Posté 25 Septembre 2005 Auteur Posté 25 Septembre 2005 Merci à vous. J'essaie tout ça et je vous dis quoi. Encore merci.
calou80 Posté 25 Septembre 2005 Auteur Posté 25 Septembre 2005 Mille excuses à vous j'ai du mal m'exprimer. En fait quand je parle de champ, il s'agit d'un champ de base de données. Le principe du code que vous m'avez donné est bon mais il "faudrait juste" que quand on clique sur l'un des 4 boutons, la valeur correspondante au bouton cliqué s'inscrive dans un champ de base de données. J'ai pensé à un champ de type ENUM("0","1","2","3"). Encore mille excuses mais comme je suis un très grand débutant je n'utilise peut-être pas encore le bon vocabulaire... mais j'y travaille. Pour le php j'utilise phpedit v0.6 et easyphp, ai-je fait le bon choix ? Pour phpedit il me semble qu'il faut enregistrer à chaque fois en indiquant bien l'extension .php est-ce normal ?
Boo2M0rs0 Posté 25 Septembre 2005 Posté 25 Septembre 2005 Bonjour, Pour un champ enum la requête sql qui va avec n'est pas plus difficile. Le code de Jan me parait bizarre ... ça défie un peu la logique du html mais je l'ai testé et ça marche ... Bon bref, en se servant de son code, tu peux facilement faire une requête sql qui remplirait ce champs enum: $valeur = "";if (isset($_POST["bouton1"])) { $valeur = 0;}elseif (isset($_POST["bouton2"])) { $valeur = 1;}elseif (isset($_POST["bouton3"])) { $valeur = 2;}elseif (isset($_POST["bouton4"])) { $valeur = 3;}mysql_query("INSERT INTO ta_table (champ_enum) VALUES ( '$valeur')"); Pour phpedit, je ne connais, personnelement, j'utilise notepad++ tout en sachant que ce n'est pas le meilleur (poil dans la main). Easyphp, étant donné que c'est juste un serveur web php/mysql préinstallé, on ne peut pas dire qu'il soit bon ou mauvais, il satisfait très bien le rôle pour lequel il a été conçu c'est tout
Jan Posté 25 Septembre 2005 Posté 25 Septembre 2005 Le code de Jan me parait bizarre ... ça défie un peu la logique du html mais je l'ai testé et ça marche ... Pas impossible ça Pour info, qu'est-ce qui te choque?
calou80 Posté 25 Septembre 2005 Auteur Posté 25 Septembre 2005 Ok Boo2MOrsO mais je mets ça où exactement dans le code de Jan ? Je suppose également que dans la dernière ligne de ton code ta_table doit être remplacée par le nom de ma table et champ_enum alors par le nom de mon champs ? Mais aussi, quand on essaie de remplir une table ne faut-il pas également un petit fichier qui permet de se connecter à la base de données et qu'on appelle dans le formulaire de saisie ? Mille excuses pour toutes ces précisions mais je suis un grand débutant !
Boo2M0rs0 Posté 25 Septembre 2005 Posté 25 Septembre 2005 (modifié) Pas impossible ça Pour info, qu'est-ce qui te choque? <{POST_SNAPBACK}> En fait quand je vois ça: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Champ modifiable par des boutons</title></head><body><form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><p><?phpmysql_connect('localhost', 'user', 'pass') or die( "Connection impossible");mysql_select_db('basededonnee') or die('Impossible de choisir la base de donnée');if (isset($_POST["bouton1"])) {$valeur = 0;}elseif (isset($_POST["bouton2"])) {$valeur = 1;}elseif (isset($_POST["bouton3"])) {$valeur = 2;}elseif (isset($_POST["bouton4"])) {$valeur = 3;}if( isset( $valeur )){mysql_query("INSERT INTO ta_table (champ_enum) VALUES ( '$valeur')");echo "Le bouton n°" . ($valeur +1) . " a été pris en compte dans la base de donnée";}?></p><p><input type="submit" name="bouton1" value="Bouton 1" /><input type="submit" name="bouton2" value="Bouton 2" /><input type="submit" name="bouton3" value="Bouton 3" /><input type="submit" name="bouton4" value="Bouton 4" /></p></form></body></html> EDIT: à remplacer aussi les 'localhost', 'user' , 'pass' et 'basededonne'. Certaines fois il est d'ailleur pratique de stocker ces données dans un fichier séparé que l'on inclus dans chaque page. On peut aussi carément inclure un fichier qui contient ces deux commandes. Modifié 25 Septembre 2005 par Boo2M0rs0
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant