Page 1 sur 1
récupération formulaire <SELECT
Posté : 19 janv. 2006, 14:13
par troudball
BOnjour à tous,
Je souhaite faire un formulaire pour envoyer un message à une adresse email. Pour cela, dans un fichier html j'utilise un select suivant pour donner la possibilité à l'utilisateur de choisir son destinataire :
Code : Tout sélectionner
<form method=post action="résultatenvoi.php">
<Select name="destinatario"><br />
<option value = "a">A@truc
<option value = "b">B@trucsdfsdfsdfs
<option value = "c">C@truc
</select>
</form>
Or je n'arrive pas à récupérer les données de ce select dans mon résultatenvoi.php, voici le code que j'ai mis :
if ($_POST_VARS['destinatario'] == 'a')
$dest=$_POST_VARS['a'];
elseif ($_POST_VARS['destinatario'] == 'b')
$dest=$_POST_VARS['b'];
elseif ($_POST_VARS['destinatario'] == 'c')
$dest=$_POST_VARS['c'];
echo $dest;
En fait $dest ne s'affiche pas...

qu'est-ce que je n'ai pas bien fait?
éventuellement, est-ce la bonne méthode? yen a-t-il d'autres?
Merci d'avance.
A+
Posté : 19 janv. 2006, 14:15
par Cyrano
Posté : 19 janv. 2006, 14:18
par troudball
quelle réactivité

Posté : 19 janv. 2006, 19:42
par Invité
excuse moi mais jene comprends pas l'écriture :
$prenom = isset($_POST['prenom']) ? trim($_POST['prenom']) : "";
c'est quoi ces ":" et "?" est un opérateur???
Posté : 19 janv. 2006, 19:47
par Truc
il s'agit de l'opérateur ternaire, regarde
ici pour plus de détails
Posté : 19 janv. 2006, 19:56
par Invité
c'est de l'Orienté object?
Posté : 19 janv. 2006, 20:16
par Truc
c'est de l'Orienté object?
Absolument pas, il ne s'agit ni de php5 ni de classe juste d'un test "if" "else" traditionnel
Posté : 19 janv. 2006, 20:44
par Cyrano
En clair :
$prenom = isset($_POST['prenom']) ? trim($_POST['prenom']) : "";
Est strictement équivalent à :
if(isset($_POST['prenom']))
{
$prenom = trim($_POST['prenom']);
}
else
$prenom = "";
}
Mais on fait la même chos e sur une seule ligne.
- le ? vérifie la si condition testée renvoie TRUE et dans ce cas affecte la valeur suivante à la variable;
- le : fait office de
else et si la condition testée renvoie FALSE, alors on affecte la seconde valeur à la variable.
Posté : 20 janv. 2006, 14:23
par troudball
Comme çà c'est clair
Sans vouloir etre trop pesant, (je sais que le form proposé est très complte) mais pourquoi ma méthode ne marche pas?
Posté : 20 janv. 2006, 16:14
par Truc
Je dirais qu'il manque les fermetures d'option => </option>
et une mise a jour sur $_POST_VARS qui devient $_POST
Posté : 23 janv. 2006, 12:24
par troudball
Dans le très bon code de cyrano, il y a aussi des echo avec des paraenthèse:
Code : Tout sélectionner
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
c'est disons le seul code que je ne comprends pas, cela veut-il dire qu e l'on récupère les valeurs dans le document meme? pouvez m'expliquer en deux mots ce code?
Merci d'avance!
Posté : 23 janv. 2006, 22:56
par Truc
en 2 mots
ceci
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
est la même chose que cela:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
les parenthèses ne changent rien au résultat du echo, c'est à dire l'affichage du chemin du
fichier courant.
Posté : 24 janv. 2006, 10:44
par troudball
OK merci pour tout

Posté : 27 janv. 2006, 13:47
par troudball
salut à tous,
le code cyrano est vraiment très bien!

Je l'ai ajusté à mes besoins et çà fonctionne très bien... pour le controle des données. Par contre après le commentaire :
/**
* Si aucun des champs obligatoire n'est vide et les données sont valides:
* Traitement des données : ce sujet n'est pas abordé ici, on ne voit que la validation.
* Néanmoins, l'affichdestinatario des données recueillies est un traitement en soi.
* Libre à chacun d'adapter pour faire un autre type de traitement.
*/
j'ai ajouté le code : mail ("arguments") avec mes arguments spécifiques :
et çà n'envoie aucun mail ???
voici mon code :
mail($tomail, $prenom, $remark);
echo $tomail;
echo $prenom;
echo $remark;
les 3 echo me servent de test et les variables sont toutes retourné de manière correcte...
Je ne comprends pas... Peut-etre que cyrano peut m'en dire un peu plus...
A l'aide
A+
Posté : 30 janv. 2006, 11:18
par Invité
j'ai meme fait un test :
if ( mail($tomail, $prenom, $remark) )
echo "Mail envoyé avec succès";
else
echo "Echec lors de l'envoi du mail";
et j'ai le message "Mail envoyé avec succès" meme quand je suis déconnecté...
J'ai fait le test sur mon ordo de dévellopmenent et sur un server, le résultat est le meme : en réalité, aucun message n'est envoyé...