Problème de boutons radio

databene
Invité n'ayant pas de compte PHPfrance

05 févr. 2012, 19:05

Bonjour,
J'ai créé un formulaire avec 3 champs de texte et (c'est là que ça coince...) 2 boutons radio.
Le résultat du formulaire est envoyé sur une base de données dans les champs prenom, nom et email. Tout ça fontionne très bien.
Plutôt que de vous livrer le fruit de mes essais, je suis revenu à la partie "qui marche" pour éviter (surement) moult corrections à mon code!

C'est surement tout bête : je veux ajouter 2 boutons radio qui communiquent avec un champ nommé premium dans ma base de données envoyant la réponse "oui" ou "non"

Pour l'instant je suis arrivé à les faire communiquer correctement avec la bdd, seulement avec un message "indefined index" à tous les coups, vu que l'un des bouton est forcément "pas coché". Je vous jure que j'ai écumé les sites, les forums, essayé de comprendre les fonction isset et empty, mais j'ai atteint mon seuil d'incompétence on dirait...
Une âme généreuse qui me mâcherait le travail (demie-honte) en m'expliquant le pourquoi du comment (histoire que j'en ressorte plus malin) garantirait la pérennité de ma santé mentale :)
Un grand grand merci.
David.

le formulaire :
<form action="../Demo/demo.php" method="post" />
<p>prenom : <input type="text" name="prenom" /></p>
<p>nom :     <input type="text" name="nom" /></p>
<p>email : <input type="text" name="email" /></p>
(place des boutons radio)
<input type="submit" />
<input type="reset" />
</form>
et le script php :
<?php

define ('DB_NAME', '...');
define ('DB_USER', '...');
define ('DB_PASSWORD', '...');
define ('DB_HOST', '...');

$link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD);

if (!$link)  {
	die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected)  {
	die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$value = $_POST['prenom'];
$value2 = $_POST['nom'];
$value3 = $_POST['email'];

$sql = "INSERT INTO mailing_list (prenom, nom, email) VALUES ('$value', '$value2', '$value3')" or die(mysql_error());

if (!mysql_query($sql))  {
	die('Error: ' . mysql_error());
}

mysql_close();
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 févr. 2012, 20:48

Modération :
J'ai modifié le titre de ton topic afin qu'il soit plus explicite concernant ton problème et respecte les règlements du forum


Concernant ton problème, tes boutons radio, lorsqu'ils sont liés doivent avoir le même nom :
<input type="radio" name="mon_bouton" value="oui" />
<input type="radio" name="mon_bouton" value="non" />
Tu recevras alors la valeur $_POST['mon_bouton'] égale à "oui" ou à "non" selon ce qui a été coché par l'utilisateur. A noter que si aucun des boutons n'est coché, aucune valeur n'est envoyée et $_POST['mon_bouton'] ne sera pas défini. Il te faut donc d'abord contrôler l'existence de la variable $_POST['mon_bouton'] avec isSet() par exemple, et ensuite en récupérer la valeur (ou mettre éventuellement une valeur par défaut sinon)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

databene
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 01:58

merci pour ta réponse :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 févr. 2012, 10:04

Modération :
Le multi-postage est interdit sur PHPFrance.
Je verrouille le présent sujet et vous encourage à continuer sur l'autre sujet
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer