Problème formulaire
Résolu/Fermé
A voir également:
- Problème formulaire
- Formulaire de réclamation facebook - Guide
- Formulaire instagram compte suspendu - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Formulaire rempli - Guide
- Problème d'envoi de formulaire ✓ - Forum PHP
3 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
21 déc. 2006 à 15:20
21 déc. 2006 à 15:20
Bonjour,
Je vais tenter de répondre à tes questions point par point.
1 - Je n'ai pas trouvé dans le code la partie qui vérifie les boutons radio... Essaie quelque chose du genre : if (isset($_POST["radionews"]))
(cf point 2)
2 - Pour que deux boutons radio soient liés entre eux, il faut leur donner le même nom. La valeur qui sortira de l'ensemble des boutons ayant le même nom est déterminée par le champ value du bouton sélectionné.
Tu dois donc modifier ton code comme ceci :
3 - Pour ça, il faut réécrire, en php, le formulaire de ta page html. Et, en cas d'erreur, au moment où tu affiches le contrôle concerné, tu rajoutes la petite phrase explicative. Par exemple :
4 - Idem qu'au-dessus... Une page php est en fait en tout point équivalent à une page html, en sortie. Donc, si dans tout ton code php, tu n'affiches que "email envoyé", le résultat sera une page html vierge, sauf pour ce texte. Il faut donc, même sur les pages php, placer les en-têtes "<html>", "<head>", "<body>", etc., ainsi que les feuilles de style et autre. Pour t'aider à comprendre, tu peux essayer d' "afficher la source", dans ton navigateur, de ta page php et de ta page html. Tu verras la différence !
5 - Essaie de préciser ligne à ligne les champs, en fermant les guillemets à chaque fin de ligne et en les rouvrant (car si tu regardes ton code source, les tabulations appartiennent en fait à la chaine de caractère, et non à la présentation du code en lui-même !)
6 - Je n'ai pas trouvé la fonction changeCase() dans le code fourni, mais à mon avis, quand tu l'appelles, tu devrais plutôt mettre javascript:changeCase(this) ou alors javascript:changeCase(this.value) (selon ce que fait ta fonction, ce que je ne peux pas savoir sans la voir ;) )
Voilà ! Dis-moi ce que ça donne... Je suis pas sûr d'avoir été clair partout :-/
Xavier
Je vais tenter de répondre à tes questions point par point.
1 - Je n'ai pas trouvé dans le code la partie qui vérifie les boutons radio... Essaie quelque chose du genre : if (isset($_POST["radionews"]))
(cf point 2)
2 - Pour que deux boutons radio soient liés entre eux, il faut leur donner le même nom. La valeur qui sortira de l'ensemble des boutons ayant le même nom est déterminée par le champ value du bouton sélectionné.
Tu dois donc modifier ton code comme ceci :
<p>Je souhaite recevoir les news<br /> <input class="news" type="radio" name="radionews" value="news_ok" id="news_ok" title="Je souhaite recevoir les news" tabindex="6" value="1" /> <label for="news_ok" title="Je souhaite recevoir les news">Oui</label> <br /> <input class="news" type="radio" name="radionews" value="news_no" id="news_no" title="Je ne souhaite pas recevoir les news" tabindex="7" value="O" /> <label for="news_no" title="Je ne souhaite pas recevoir les news">Non</label></p>
3 - Pour ça, il faut réécrire, en php, le formulaire de ta page html. Et, en cas d'erreur, au moment où tu affiches le contrôle concerné, tu rajoutes la petite phrase explicative. Par exemple :
if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs ?> Placer ici tout le code de la page jusqu'au champ qui contient l'erreur (il faut donc utiliser une variable qui permette de se "souvenir" de quels sont les champs à corriger) <? echo "<span style=\"color:red\">".$erreur."</span>"; // On affiche le message correspondant à l'erreur ?> continuer le formulaire, et ainsi de suite s'il y a plusieurs erreurs... <? } // et on ferme le "if", quand même
4 - Idem qu'au-dessus... Une page php est en fait en tout point équivalent à une page html, en sortie. Donc, si dans tout ton code php, tu n'affiches que "email envoyé", le résultat sera une page html vierge, sauf pour ce texte. Il faut donc, même sur les pages php, placer les en-têtes "<html>", "<head>", "<body>", etc., ainsi que les feuilles de style et autre. Pour t'aider à comprendre, tu peux essayer d' "afficher la source", dans ton navigateur, de ta page php et de ta page html. Tu verras la différence !
5 - Essaie de préciser ligne à ligne les champs, en fermant les guillemets à chaque fin de ligne et en les rouvrant (car si tu regardes ton code source, les tabulations appartiennent en fait à la chaine de caractère, et non à la présentation du code en lui-même !)
$message = "Nom : $nom \r\n"; $message += "Prénom : $prenom \r\n"; $message += "E-mail : $email \r\n"; $message += "Sujet : $sujet \r\n"; $message += "Message : \r\n"; $message += $text + "\r\n"; $message += "News : \r\n"; $message += $news;
6 - Je n'ai pas trouvé la fonction changeCase() dans le code fourni, mais à mon avis, quand tu l'appelles, tu devrais plutôt mettre javascript:changeCase(this) ou alors javascript:changeCase(this.value) (selon ce que fait ta fonction, ce que je ne peux pas savoir sans la voir ;) )
Voilà ! Dis-moi ce que ça donne... Je suis pas sûr d'avoir été clair partout :-/
Xavier
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
21 déc. 2006 à 18:59
21 déc. 2006 à 18:59
Ah oui, désolé pour le .= transformé en +=, vu que je code en même temps en c# à mon boulot, des fois je me mélange un peu ^^'
Enfin, content d'avoir pu être utile :)
Enfin, content d'avoir pu être utile :)
lefou4
Messages postés
73
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
5 mai 2010
44
22 déc. 2006 à 13:15
22 déc. 2006 à 13:15
Pour la question 1 :
Tu testes $_POST['news'] alors que tes champs input checkbox (qui devraient avoir le même nom) portent les name "news_ok" et "news_no". Mets "news" pour name et là ton champ sera bien tester.
Pour la question 2 :
En partant du principe que tu as corrigé la question 1, tu vérifies. qu'un des champs est bien coché avec isset($_POST['news']). Si $_POST['news'] est bien transmis alors il aura pour valeur celle du "value" du champ.
Tu testes $_POST['news'] alors que tes champs input checkbox (qui devraient avoir le même nom) portent les name "news_ok" et "news_no". Mets "news" pour name et là ton champ sera bien tester.
Pour la question 2 :
En partant du principe que tu as corrigé la question 1, tu vérifies. qu'un des champs est bien coché avec isset($_POST['news']). Si $_POST['news'] est bien transmis alors il aura pour valeur celle du "value" du champ.
21 déc. 2006 à 18:31
Et : ça marche !
Pour le point 5), ne fonctionne pas mais ça marche avec
Et pour le 6) j'ai fait plus simple en remplaçant le javascript par dans l'input.
Merci encore :-)
28 janv. 2012 à 18:50