Problème de création de formulaire
3 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Problème de création de formulaire
Bonjour!
Je chercher à créer un formulaire pour les fiches de présentation sur mon forum RPG. J'ai suivi ce tuto qui est vraiment bien fait.
J'ai donc créé une page HTML sur mon forum avec ce code:
C'est un test, je n'ai donc pas mis le formulaire en lui-même en forme, mais je sais faire. Le souci, c'est que lorsque je clique sur "envoyer", ça me met la page posting.forum avec le message "Vous devez entrer un message avant de poster". Et en effet, le champ titre est bien rempli, mais il n'y a rien d'affiché dans le champ message. Et je ne comprends pas où ça buggue… Quelqu'un pourrait-il me le dire? J'aimerai comprendre, mais je tiens à signaler que, si je me débrouille en HTML/CSS, je ne connais rien au Javascript donc il me faudrait une explication simple ou détaillée pour que je puisse suivre
Seconde question, apparemment on peut mettre le formulaire en forme avec du BBCode. Mais, comme c'est une fiche personnage, j'aimerai une présentation un peu plus élaborée, vu que mes fiches sont codées. Est-ce donc possible d'insérer des éléments de HTML et de CSS dans le code Javascript pour avoir la mise en forme actuelle? Je pense que oui, car je l'ai vu sur certains forums, mais je n'ai pas trouvé de tuto qui l'explique.
Merci pour vos réponses
Je chercher à créer un formulaire pour les fiches de présentation sur mon forum RPG. J'ai suivi ce tuto qui est vraiment bien fait.
J'ai donc créé une page HTML sur mon forum avec ce code:
- Code:
<script type="text/javascript">
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var txt_message = "" + form.nomperso.value + '\n'
+ " " + form.birthdate.value + '\n'
+ " " + form.age.value + '\n'
+ "Métier" + form.work.value + '\n'
+ "[b]Maison:[/b]\n[list]";
// Dans le cas des checkboxs, on va les parcourir pour prendre la valeur de celles qui sont cochées:
for(var i = 0; i < form.maison.length; i++)
{
if(form.gouts[i].checked == true) { txt_message = txt_message + '[*]' + form.gouts[i].value + '\n'; }
}
txt_message = txt_message + "[/list][b]Baguette[/b] : " + form.baguette.value + '\n';
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
}
</script>
<div class="forumline">
<form method="post" action="http://arestomomentum.conceptbb.com/posting.forum" onSubmit="envoiMessage(this)"><p>
<input type="hidden" name="mode" value="newtopic" /> <!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = Note / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="f" value="47" /> <!-- ID du forum dans lequel le message sera posté-->
<fieldset><legend>Carte d'identité</legend>
<label for="nomperso">Prénoms et nom: </label> <input type="text" name="subject" id="titre" value="" size="45" maxlength="60" />
<br />
<label for="birthdate">Date de naissance</label> : <input type="text" size="30" name="birthdate" id="birthdate" />
<br />N'oubliez pas qu'au Royaume-Uni, l'année d'étude est déterminée par la date de naissance et non l'année civile. Un enfant né le 30 août entrera à Poudlard une année avant un enfant né le 2 septembre de cette même année.
<br />
<label for="age" >Age</label> : <input type="text" size="30" name="age" id="age" />
<br />Vérifiez la date sur l'entête, nous jouons avec 6 ans de retard par rapport à la date réelle!
<br />
<label for="work">Métier ou année d'étude</label> : <input type="text" size="30" name="work" id="work" />
<br />
<label for="avatarfiche">URL d'une image qui apparaîtra dans votre fiche</label> : <input type="text" size="30" name="avatarfiche" id="avatarfiche" />
</fieldset>
<br />
<label for="baguette">Baguette</label> : <textarea type="text" name="baguette" width="300" height="150">Bois, élément interne, longueur, compétences particulières (ex: souple, bonne pour la métamorphose). Merci de rester dans les classiques d'Ollivander: pas de cheveu de vélane, de poil d'elfe de maison etc...</textarea>
<br />
Maison ou ancienne maison:<br />
<input type="radio" name="maison" value="gryffondor" id="gryffondor" /> <label for="Gryffondor">Gryffondor</label><br />
<input type="radio" name="maison" value="Poufsouffle" id="Poufsouffle" /> <label for="Poufsouffle">Poufsouffle</label><br />
<input type="radio" name="maison" value="Serdaigle" id="Serdaigle" /> <label for="Serdaigle">Serdaigle</label><br />
<input type="radio" name="maison" value="Serpentard" id="Serpentard" /> <label for="Serpentard">Serpentard</label><br />
<input type="radio" name="maison" value="Autre" id="Autre" /> <label for="Autre">Votre personnage n'a pas été à Poudlard</label><br />
<br />
<input type="submit" name="post" value="Envoyer" />
</p></form>
</div>
C'est un test, je n'ai donc pas mis le formulaire en lui-même en forme, mais je sais faire. Le souci, c'est que lorsque je clique sur "envoyer", ça me met la page posting.forum avec le message "Vous devez entrer un message avant de poster". Et en effet, le champ titre est bien rempli, mais il n'y a rien d'affiché dans le champ message. Et je ne comprends pas où ça buggue… Quelqu'un pourrait-il me le dire? J'aimerai comprendre, mais je tiens à signaler que, si je me débrouille en HTML/CSS, je ne connais rien au Javascript donc il me faudrait une explication simple ou détaillée pour que je puisse suivre
Seconde question, apparemment on peut mettre le formulaire en forme avec du BBCode. Mais, comme c'est une fiche personnage, j'aimerai une présentation un peu plus élaborée, vu que mes fiches sont codées. Est-ce donc possible d'insérer des éléments de HTML et de CSS dans le code Javascript pour avoir la mise en forme actuelle? Je pense que oui, car je l'ai vu sur certains forums, mais je n'ai pas trouvé de tuto qui l'explique.
Merci pour vos réponses
Re: Problème de création de formulaire
bonjour,
on va procéder par ordre ...
Le code que vous testez est uniquement prévu pour une page HTML avec le haut/bas du forum .
Vérifions d'abord la partie HTML :
Passons au script :
voici le code corrigé :
on va procéder par ordre ...
Le code que vous testez est uniquement prévu pour une page HTML avec le haut/bas du forum .
Vérifions d'abord la partie HTML :
<div class="forumline">
<form method="post" action="http://arestomomentum.conceptbb.com/posting.forum" onSubmit="envoiMessage(this)"><p>
on n'est pas forcé de mettre posting.forum , post suffira
<input type="hidden" name="mode" value="newtopic" /> <!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0 = Sujet Normal / 1 = Note / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- le texte du message -->
<input type="hidden" name="f" value="47" /> <!-- identifiant du forum -->
<input type="hidden" name="subject" id="titre" value="" /> <!-- titre du sujet -->
on rajoute un champ masqué pour le titre du nouveau sujet , on peut mettre un texte dans la value , ou définir un texte dans le script .
<fieldset><legend>Carte d'identité</legend>
<label for="nomperso">Prénoms et nom: </label> <input type="text" name="subject" id="titre" value="" size="45" maxlength="60" />
<br />
id et for doivent avoir le même nom . Si possible name aussi .
<label for="birthdate">Date de naissance</label> : <input type="text" size="30" name="birthdate" id="birthdate" />
<br />N'oubliez pas qu'au Royaume-Uni, l'année d'étude est déterminée par la date de naissance et non l'année civile. Un enfant né le 30 août entrera à Poudlard une année avant un enfant né le 2 septembre de cette même année.
<br />
<label for="age" >Age</label> : <input type="text" size="30" name="age" id="age" />
<br />Vérifiez la date sur l'entête, nous jouons avec 6 ans de retard par rapport à la date réelle!
<br />
<label for="work">Métier ou année d'étude</label> : <input type="text" size="30" name="work" id="work" />
<br />
<label for="avatarfiche">URL d'une image qui apparaîtra dans votre fiche</label> : <input type="text" size="30" name="avatarfiche" id="avatarfiche" />
N'apparait pas dans le script d'envoi .
</fieldset>
<br />
<label for="baguette">Baguette</label> : <textarea type="text" name="baguette" width="300" height="150">Bois, élément interne, longueur, compétences particulières (ex: souple, bonne pour la métamorphose). Merci de rester dans les classiques d'Ollivander: pas de cheveu de vélane, de poil d'elfe de maison etc...</textarea>
<br />
Maison ou ancienne maison:<br />
<input type="radio" name="maison" value="gryffondor" id="gryffondor" /> <label for="Gryffondor">Gryffondor</label><br />
id et for doivent avoir le même nom , à la lettre près ...
<input type="radio" name="maison" value="Poufsouffle" id="Poufsouffle" /> <label for="Poufsouffle">Poufsouffle</label><br />
<input type="radio" name="maison" value="Serdaigle" id="Serdaigle" /> <label for="Serdaigle">Serdaigle</label><br />
<input type="radio" name="maison" value="Serpentard" id="Serpentard" /> <label for="Serpentard">Serpentard</label><br />
<input type="radio" name="maison" value="Autre" id="Autre" /> <label for="Autre">Votre personnage n'a pas été à Poudlard</label><br />
Dans le cas des boutons radios , le script sera différent selon qu'un des boutons radios est sélectionné ou pas . Dans votre cas , il y aura obligatoirement une réponse , donc un bouton radio sélectionné .
<br />
<input type="submit" name="post" value="Envoyer" />
</p></form>
</div>
Passons au script :
<script type="text/javascript">
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var txt_message = "" + form.nomperso.value + '\n'
on peut directement commencer par une value , pas besoin de mettre deux guillemets .
+ " " + form.birthdate.value + '\n'
+ " " + form.age.value + '\n'
+ "Métier" + form.work.value + '\n'
+ "[ b]Maison:[/b]\n[ list]";
// Dans le cas des checkboxs, on va les parcourir pour prendre la valeur de celles qui sont cochées:
for(var i = 0; i < form.maison.length; i++)
{
if(form.gouts[i].checked == true) { txt_message = txt_message + '[ *]' + form.gouts[i].value + '\n'; }
}
Ici , le souci principal est qu'il n'y a pas de value avec comme nom gouts donc pas de script fonctionnel .
De plus , ça ne fonctionne que si un des boutons radios est sélectionné .
txt_message = txt_message + peut être remplacé par txt_message += , question de place et de confort.
Attention à la balise "list" , sans l'astérisque il y aura des soucis à l'édition du texte envoyé .
txt_message = txt_message + "[ /list][ b]Baguette[/b] : " + form.baguette.value + '\n';
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
form.subject.value = "Présentation de " + form.nomperso.value;
cette partie du script est pour personnaliser le titre du nouveau sujet .
}
</script>
voici le code corrigé :
- Code:
<script type="text/javascript">
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var txt_message = form.nomperso.value + '\n'
+ form.birthdate.value + '\n'
+ form.age.value + '\n'
+ "Métier" + form.work.value + '\n'
+ "avatar" + form.avatarfiche.value + "\n"
+ "[b]Maison:[/b]\n[list]";
// Dans le cas des checkboxs, on va les parcourir pour prendre la valeur de celles qui sont cochées:
for(var i = 0; i < form.maison.length; i++)
{
if(form.maison[i].checked == true) { txt_message += '[*]' + form.maison[i].value + '\n'; }
}
txt_message += "[/list][b]Baguette[/b] : " + form.baguette.value + '\n';
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
form.subject.value = "Présentation de " + form.nomperso.value;
}
</script>
<div class="forumline">
<form method="post" action="http://arestomomentum.conceptbb.com/post" onSubmit="envoiMessage(this)"><p>
<input type="hidden" name="mode" value="newtopic" /> <!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0 = Sujet Normal / 1 = Note / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- le texte du message -->
<input type="hidden" name="f" value="47" /> <!-- identifiant du forum -->
<input type="hidden" name="subject" id="titre" value="" /> <!-- titre du sujet -->
<fieldset><legend>Carte d'identité</legend>
<label for="nomperso">Prénoms et nom: </label> <input type="text" name="nomperso" id="nomperso" value="" size="45" maxlength="60" />
<br />
<label for="birthdate">Date de naissance</label> : <input type="text" size="30" name="birthdate" id="birthdate" />
<br />N'oubliez pas qu'au Royaume-Uni, l'année d'étude est déterminée par la date de naissance et non l'année civile. Un enfant né le 30 août entrera à Poudlard une année avant un enfant né le 2 septembre de cette même année.
<br />
<label for="age" >Age</label> : <input type="text" size="30" name="age" id="age" />
<br />Vérifiez la date sur l'entête, nous jouons avec 6 ans de retard par rapport à la date réelle!
<br />
<label for="work">Métier ou année d'étude</label> : <input type="text" size="30" name="work" id="work" />
<br />
<label for="avatarfiche">URL d'une image qui apparaîtra dans votre fiche</label> : <input type="text" size="30" name="avatarfiche" id="avatarfiche" />
</fieldset>
<br />
<label for="baguette">Baguette</label> : <textarea type="text" name="baguette" width="300" height="150">Bois, élément interne, longueur, compétences particulières (ex: souple, bonne pour la métamorphose). Merci de rester dans les classiques d'Ollivander: pas de cheveu de vélane, de poil d'elfe de maison etc...</textarea>
<br />
Maison ou ancienne maison:<br />
<input type="radio" name="maison" value="gryffondor" id="Gryffondor" selected="selected"/> <label for="Gryffondor">Gryffondor</label><br />
<input type="radio" name="maison" value="Poufsouffle" id="Poufsouffle" /> <label for="Poufsouffle">Poufsouffle</label><br />
<input type="radio" name="maison" value="Serdaigle" id="Serdaigle" /> <label for="Serdaigle">Serdaigle</label><br />
<input type="radio" name="maison" value="Serpentard" id="Serpentard" /> <label for="Serpentard">Serpentard</label><br />
<input type="radio" name="maison" value="Autre" id="Autre" /> <label for="Autre">Votre personnage n'a pas été à Poudlard</label><br />
<br />
<input type="submit" name="post" value="Envoyer" />
</p></form>
</div>
Re: Problème de création de formulaire
Merci pour ces corrections!
Donc, si j'ai bien suivi, si je mets un champ dans le formulaire, je dois obligatoirement le remettre dans le script pour qu'il fonctionne? Je n'avais pas reporté l'avatar car c'était un test et je pensais qu'il n'apparaîtrait simplement pas.
Pour les checkbox, que se passe-t-il concrètement si ce n'est pas coché?
D'autre part, dans la fiche finale, je compte intégrer également des checkbox à choix multiple, le code sera-t-il le même?
Par ailleurs, je ne comprends pas ce que vous voulez dire par là:
Cela semble fonctionner correctement, le texte est bien collé dans la partie message. Seul problème, au lieu de poster mon message, cela m'affiche la page de saisie avec écrit "Une erreur navigateur est survenue [Erreur #230], veuillez contacter le support technique." Que ce soit avec Safari ou Firefox.
Si je tente de poster à nouveau sans rien modifier, cela fonctionne. Comment faire pour que le formulaire poste directement ?
Donc, si j'ai bien suivi, si je mets un champ dans le formulaire, je dois obligatoirement le remettre dans le script pour qu'il fonctionne? Je n'avais pas reporté l'avatar car c'était un test et je pensais qu'il n'apparaîtrait simplement pas.
Pour les checkbox, que se passe-t-il concrètement si ce n'est pas coché?
D'autre part, dans la fiche finale, je compte intégrer également des checkbox à choix multiple, le code sera-t-il le même?
Par ailleurs, je ne comprends pas ce que vous voulez dire par là:
Quel est l'effet de ce changement?txt_message = txt_message + peut être remplacé par txt_message += , question de place et de confort.
Cela semble fonctionner correctement, le texte est bien collé dans la partie message. Seul problème, au lieu de poster mon message, cela m'affiche la page de saisie avec écrit "Une erreur navigateur est survenue [Erreur #230], veuillez contacter le support technique." Que ce soit avec Safari ou Firefox.
Si je tente de poster à nouveau sans rien modifier, cela fonctionne. Comment faire pour que le formulaire poste directement ?
Re: Problème de création de formulaire
Bonjour,CapriceK a écrit:Seul problème, au lieu de poster mon message, cela m'affiche la page de saisie avec écrit "Une erreur navigateur est survenue [Erreur #230], veuillez contacter le support technique."
Pour cette "erreur 230", vous trouverez la réponse dans ce sujet : Formulaire Erreur 230.
Cordialement.
Re: Problème de création de formulaire
Merci pour la réponse, le problème est réglé.
J'ai également trouvé comment insérer du code dans le script, et j'ai lu le cours de javascript sur Open Classroom, j'ai donc compris le pourquoi du text_message +=
Ne reste donc que ma question à propos des checkbox multiples =)
J'ai également trouvé comment insérer du code dans le script, et j'ai lu le cours de javascript sur Open Classroom, j'ai donc compris le pourquoi du text_message +=
Ne reste donc que ma question à propos des checkbox multiples =)
Re: Problème de création de formulaire
attention , ne pas confondre des boutons radio (à choix unique , de forme ronde) avec des checkbox (à choix multiple , de forme carrée)
un exemple (qui serait posté dans un sujet) :
c'est un code pour un distributeur de boissons .
Ce code est composé de boutons radio , et aucun de ces boutons n'est coché au départ ...
Je définie donc une variable "choix" en début de script . Cette variable est vide , mais on peut y mettre n’importe quel mot . Si aucun bouton radio n'est sélectionné , ce sera cette variable qui sera envoyée .
Sinon la variable prendra le texte du bouton cliqué ...
Pour les checkboxs , c'est un peu plus simple , puisque toutes les cases peuvent rester vide , sans pour autant perturber l’envoi .
exemple (qui serait envoyé dans un forum) :
Dans cet exemple , il y a aussi une alerte en début de script , pour le cas où aucune case n'est cochée .
Sans cette alerte , l'envoi se ferait , même sans case cochée .
Il y a des dizaines de possibilités différentes , sur les centaines de formulaires postés sur le FdF ...
Difficile de faire un tuto pour des formulaires personnalisés .
un exemple (qui serait posté dans un sujet) :
- Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>distributeur de boissons</title>
<style type="text/css">
select,input {
text-align=left;
font: 0.9em arial;
}
</style>
<script type="text/javascript" src="http://tinyurl.com/var-fa"></script>
<script type="text/javascript">
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var choix = "";
if(form.choix[0].checked == true)
choix = " Cappucino";
else if(form.choix[1].checked == true)
choix = " Orangina";
else if(form.choix[2].checked == true)
choix = " Café";
else if(form.choix[3].checked == true)
choix = " Coca";
else if(form.choix[4].checked == true)
choix = " Cacolac";
else if(form.choix[5].checked == true)
choix = " Fanta Orange";
else if(form.choix[6].checked == true)
choix = "e Tisane";
else if(form.choix[7].checked == true)
choix = " Fanta Citron";
else if(form.choix[8].checked == true)
choix = " Perrier";
else if(form.choix[9].checked == true)
choix = " RedBull";
else if(form.choix[10].checked == true)
choix = "e Cristalinne";
else if(form.choix[11].checked == true)
choix = " Ice Tea";
else if(form.choix[12].checked == true)
choix = " Jus de Pomme";
else if(form.choix[13].checked == true)
choix = " Oasis";
else if(form.choix[14].checked == true)
choix = " Jus de Fraises";
var txt_message = "[b]" + form.pseudo.value + "[/b] est généreux aujourd'hui ! Il offre [b]un" + choix + " [/b] à [b] " + form.equipe.value + '[/b]\n';
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
}
</script>
</head>
<body>
<form action="/post" method="post" name="post" enctype="multipart/form-data" onSubmit="envoiMessage(this)" >
<input type="hidden" name="mode" value="reply" /> <!-- Un nouveau message sera créé -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="t" value="10" /> <!-- ID du forum dans lequel le message sera posté-->
<input type="hidden" name="subject" value="c'est la tournée" /><!-- facultatif -->
bonjour <input name="pseudo" type="text" value="" class="USERNAME" readonly="readonly"/> ,<br><br>
<b>A qui voulez vous offrir une boisson ? :</b>
<select name="equipe" id="equipe">
<option selected="selected">Pierre du 47</option>
<option>Nicolas</option>
<option>pompier47</option>
<option>Sotark</option>
<option>pompierabb</option>
<option>Mickale</option>
<option>yoan77</option>
<option>romain</option>
<option>Alex</option>
<option>eric8231</option>
</select><br><br>
<b>choisissez Votre Boisson</b> :<br><br>
<table style="text-align: left; width: 400px; background-color: rgb(240, 0, 0);" border="0" cellpadding="5" cellspacing="0">
<tbody>
<tr>
<td colspan="1" rowspan="8" style="background-color: rgb(153, 0, 0); vertical-align: middle; text-align: center; width: 30px;"></td>
<td style="text-align: right;"><b> Cappucino</b></td>
<td style="text-align: left;"><input name="choix" value=" Cappucino" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" Orangina" type="radio"></td>
<td><b> Orangina</b></td>
<td colspan="1" rowspan="8" style="background-color: rgb(153, 0, 0); vertical-align: middle; text-align: center; width: 30px;"></td>
</tr>
<tr>
<td style="text-align: right;"><b> Café</b></td>
<td><input name="choix" value=" Café" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" Coca" type="radio"></td>
<td><b> Coca</b></td>
</tr>
<tr>
<td style="text-align: right;"><b> Cacolac</b></td>
<td><input name="choix" value=" Cacolac" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" Fanta Orange" type="radio"></td>
<td><b> Fanta Orange </b></td>
</tr>
<tr>
<td style="text-align: right;"><b> Tisane</b></td>
<td><input name="choix" value="e Tisane" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" Fanta Citron" type="radio"></td>
<td><b> Fanta Citron</b></td>
</tr>
<tr>
<td style="text-align: right;"><b> Perrier</b></td>
<td><input name="choix" value=" Perrier" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" RedBull" type="radio"></td>
<td><b> RedBull</b></td>
</tr>
<tr>
<td style="text-align: right;"><b>Cristalinne</b></td>
<td><input name="choix" value="e Cristalinne" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" Ice Tea" type="radio"></td>
<td><b> Ice Tea</b></td>
</tr>
<tr>
<td style="text-align: right;"><b> Jus de Pomme</b></td>
<td><input name="choix" value=" Jus de Pomme" type="radio"></td>
<td style="text-align: right;"><input name="choix" value=" Oasis" type="radio"></td>
<td><b> Oasis</b></td>
</tr>
<tr>
<td style="text-align: right;"><b> Jus de Fraises</b></td>
<td><input name="choix" value=" Jus de Fraises" type="radio"></td>
<td style="text-align: center;" colspan="2" rowspan="1"><input value="Offrir" name="submit" type="submit"></td>
</tr>
</tbody>
</table>
</form>
</body></html>
c'est un code pour un distributeur de boissons .
Ce code est composé de boutons radio , et aucun de ces boutons n'est coché au départ ...
Je définie donc une variable "choix" en début de script . Cette variable est vide , mais on peut y mettre n’importe quel mot . Si aucun bouton radio n'est sélectionné , ce sera cette variable qui sera envoyée .
Sinon la variable prendra le texte du bouton cliqué ...
Pour les checkboxs , c'est un peu plus simple , puisque toutes les cases peuvent rester vide , sans pour autant perturber l’envoi .
exemple (qui serait envoyé dans un forum) :
- Code:
<!DOCTYPE html>
<html>
<head>
<title>Changement de Pseudo</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
<!--
body {
background:#B7C0E5;
text-align:center;
}
form {width:700px;
margin:auto;
margin:20px;
}
label {float:left;text-align:left;width:180px;}
-->
</style>
<script type="text/javascript" src="http://tinyurl.com/var-fa"></script>
<script type="text/javascript">
function CompleteMessage(form)
{
/* Refuser l'envoi si le formulaire n'est pas entièrement rempli, si un des champs est vide */
if( form.personnel[0].checked === false && form.personnel[1].checked === false && form.personnel[2].checked === false && form.personnel[3].checked === false && form.personnel[4].checked === false)
{
document.getElementById("errormsg").innerHTML = "Merci de cocher au moins une case.";
return false;
}
else if( form.adresse.value === "")
{
document.getElementById("errormsg").innerHTML = "Merci de fournir l'adresse du lien .";
return false;
}
else if( form.bug.value === "" )
{
document.getElementById("errormsg").innerHTML = "Merci de décrire le bug .";
return false;
}
else
{
var txt_message = "Bonjour cher admin,\n\n";
txt_message += "Ceci concerne : ";
for(var i = 0; i < form.personnel.length; i++)
{
if(form.personnel[i].checked === true) { txt_message += "[b]" + form.personnel[i].value + "[/b]"; }
}
txt_message += "\n\n[b]" + form.pseudo1.value + "[/b] a découvert un bug sur la page lien qui est le suivant:\n\n";
txt_message += "[url]" + form.adresse.value + "[/url]\n\n";
txt_message += "[u]Description du problème :[/u] \n\n";
txt_message += form.bug.value + "\n";
form.message.value = txt_message;
return true;
}
}
</script>
</head>
<body>
<form action="/post" method="post" name="post" enctype="multipart/form-data" onSubmit="return(CompleteMessage(this))">
<input type="hidden" name="lt" value="0" />
<input type="hidden" name="mode" value="newtopic" />
<input type="hidden" name="topictype" value="0" checked="checked" />
<input type="hidden" name="message" value="" />
<input type="hidden" name="f" value="40" />
<input type="hidden" name="subject" value="Nouveau Bug" />
<input type="hidden" name="pseudo1" id="pseudo1" value="" class="USERNAME" />
<h1>Bugs</h1>
<hr>
<p>Vous avez découvert un bug ? Faites le nous savoir ici en remplissant le formulaire suivant. </p>
<p>Merci de préciser quels personnels sont concernés par ce bug :</p>
<input type="checkbox" name="personnel" value="- les Administrateurs" /> Administrateurs
<input type="checkbox" name="personnel" value="- les Modérateurs" /> Modérateurs
<input type="checkbox" name="personnel" value="- les Rédacteurs" /> Rédacteurs
<input type="checkbox" name="personnel" value="- les Correcteurs" /> Correcteurs
<input type="checkbox" name="personnel" value="- les Animateurs" /> Animateurs <br /><br />
<label for="adresse">L'adresse de la page :</label><input type="text" name="adresse" id="adresse" size="55" maxlength="90" /><br />
<label for="bug">Décrivez le bug découvert :</label><textarea name="bug" id="bug" rows="7" cols="50"></textarea><br /><br />
<div id="errormsg" style="color:red;"> </div><br />
<input type="submit" value="Envoyer" name="post" /><br />
</form>
</body>
</html>
Dans cet exemple , il y a aussi une alerte en début de script , pour le cas où aucune case n'est cochée .
Sans cette alerte , l'envoi se ferait , même sans case cochée .
Il y a des dizaines de possibilités différentes , sur les centaines de formulaires postés sur le FdF ...
Difficile de faire un tuto pour des formulaires personnalisés .
Re: Problème de création de formulaire
Hum… donc, si j'ai bien suivi, si j'ai une checkbox, je n'ai qu'à mettre ce code ci:
Et si j'ai un radio donc un choix unique,
Et ça me mettra tous les choix cochés à la suite (par exemple, "français, maths").var txt_message = "Matières:" + for(var i = 0; i < form.matieres.length; i++)
{
if(form.personnel[i].checked === true) { txt_message += " " + form.personnel[i].value + ","; }
+ "la fin de mon message"
Et si j'ai un radio donc un choix unique,
… Sauf qu'en fait c'est la même chose, non?"Maison:";
for(var i = 0; i < form.maison.length; i++)
{
if(form.maison[i].checked == true) { txt_message += ' ' + form.maison[i].value + '\n'; }
Re: Problème de création de formulaire
C'est pareil !^^
Re: Problème de création de formulaire
D'accord! Merci pour toutes ces précisions en tout cas
Sujets similaires
» Problème avec un script (js) qui remplace le formulaire de création de sujet par son propre formulaire.
» Problème formulaire - tutoriel astuce "création de formulaire simplifié"
» Problème dans la création d'un formulaire
» Problème avec formulaire de création de topic
» Formulaire création message
» Problème formulaire - tutoriel astuce "création de formulaire simplifié"
» Problème dans la création d'un formulaire
» Problème avec formulaire de création de topic
» Formulaire création message
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum