Calcul dans un formulaire
2 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
Calcul dans un formulaire
Détails techniques
Version du forum : phpBB2
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Safari
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://www.universiteuniverselle.com
Description du problème
Bonsoir,J'aimerais que dans la valeur "total" lorsque j'envoie le formulaire, ça additionne les nombres de chaque réponse (ou "value") des choix multiples dans ce formulaire :
- Code:
<style>
#form_journ label{
font:bold 11px ubuntu, verdana;
display:block;
text-align:center;
}
#form_journ select,#form_journ input[type=text],#form_journ input[type=url]{
height:25px!important;margin:10px 6px 0 0;padding:0 5px;
}
.court{
width:195px!important;
}
label{
display:inline!important;
}
</style>
<script type="text/javascript">
function envoiMessage(form)
{if(form.titre.value=='')
{
alert("Vous devez indiquer le titre de l'article");
return false;
}
else if(form.lien.value=='')
{
alert("Vous devez indiquer le lien de l'article");
return false;
}
else if(form.pseudo.value=='')
{
alert("Vous devez indiquer le pseudo de l'auteur de l'article");
return false;
}
else
{
var txt_message = "[table class='vert' align='center' width='70%'][tr][td][center][size=16][url=" + form.lien.value + "]" + form.titre.value + "[/url][/size]\n"
+ "[size=14]" + form.pseudo.value + "[/size][/center][/td][/tr][/table]\n"
+ "[table class='jaune' align='center' width='80%'][tr][td][center][size=16]Critères de rémunération[/size]\n\n"
+ "Importance — " + form.importance.value + " étoiles :e:\n"
+ "Innovation — " + form.innovation.value + " étoiles :e:\n"
+ "Rigueur — " + form.rigueur.value + " étoiles :e:\n"
+ "Rédaction — " + form.rédaction.value + " étoiles :e:\n"
+ "Synthèse — " + form.synthèse.value + " étoiles :e:\n"
+ "Intérêt — " + form.intérêt.value + " étoiles :e:\n\n"
+ "TOTAL — " + form.total.value + "[/center][/td][/tr][/table]\n";
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
form.subject.value = "Rémunération de " + form.pseudo.value + "";
return true;
}
}
</script>
<form action="/post" method="post" name="post" enctype="multipart/form-data" onSubmit="return(envoiMessage(this))" id="form_journ">
<input type="hidden" name="mode" value="reply" /><!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="subject" value="" />
<input type="hidden" name="t" value="3151" />
<table style="width: 100%;" cellpadding="0" cellspacing="1" border="0" class="forumline">
<tr>
<th nowrap="nowrap" width="100%" class="secondarytitle">
<h2>Grille d'évalutation</h2>
</th>
</tr>
<tr>
<td height="6">
</td>
</tr>
<tr>
<td class="row1"><br /><div align="center">
<label for="titre">Titre de l'article : <font color="red">*</font></label><br />
<input name="titre" id="titre" type="text" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="lien">Lien de l'article : <font color="red">*</font></label><br />
<input name="lien" id="lien" type="url" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="pseudo">Pseudo du journaliste : <font color="red">*</font></label><br />
<input name="pseudo" id="pseudo" type="text" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="importance">Est-ce que le sujet est important ? <font color="red">*</font></label><br />
<input type="radio" name="importance" value="0" id="0" /> <label for="Non">Non</label>
<input type="radio" name="importance" value="1" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="importance" value="2" id="2" /> <label for="Important">Important</label>
<input type="radio" name="importance" value="3" id="3" /> <label for="Essentiel">Essentiel</label>
<br />
<br />
<label for="innovation">Est-ce que le sujet est innovant ? <font color="red">*</font></label><br />
<input type="radio" name="innovation" value="0" id="0" /> <label for="Répétitif">Répétitif</label>
<input type="radio" name="innovation" value="1" id="1" /> <label for="Complémentaire">Complémentaire</label>
<input type="radio" name="innovation" value="2" id="2" /> <label for="Nouveau">Nouveau</label>
<input type="radio" name="innovation" value="3" id="3" /> <label for="Révolutionnaire">Révolutionnaire</label>
<br />
<br />
<label for="rigueur">Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></label><br />
<input type="radio" name="rigueur" value="0" id="0" /> <label for="+4 erreurs">+4 erreurs</label>
<input type="radio" name="rigueur" value="1" id="1" /> <label for="3-4 erreurs">3-4 erreurs</label>
<input type="radio" name="rigueur" value="2" id="2" /> <label for="1-2 erreurs">1-2 erreurs</label>
<input type="radio" name="rigueur" value="3" id="3" /> <label for="Aucune">Aucune</label>
<br />
<br />
<label for="rédaction">Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></label><br />
<input type="radio" name="rédaction" value="0" id="0" /> <label for="Non">Non</label>
<input type="radio" name="rédaction" value="1" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="rédaction" value="2" id="2" /> <label for="Varié">Varié</label>
<br />
<br />
<label for="synthèse">Est-ce que la taille est adaptée ? <font color="red">*</font></label><br />
<input type="radio" name="synthèse" value="0" id="0" /> <label for="Trop court">Trop court</label>
<input type="radio" name="synthèse" value="1" id="1" /> <label for="Court">Court</label>
<input type="radio" name="synthèse" value="3" id="3" /> <label for="Adapté">Adapté</label>
<input type="radio" name="synthèse" value="2" id="2" /> <label for="Long">Long</label>
<input type="radio" name="synthèse" value="1" id="1" /> <label for="Trop long">Trop long</label>
<br />
<br />
<label for="intérêt">Est-ce qu'il a suscité beaucoup de réactions ? <font color="red">*</font></label><br />
<input type="radio" name="intérêt" value="0" id="0" /> <label for="0-4 commentaires">0-4 commentaires</label>
<input type="radio" name="intérêt" value="1" id="1" /> <label for="5-8 commentaires">5-8 commentaires</label>
<input type="radio" name="intérêt" value="2" id="2" /> <label for="9-12 commentaires">9-12 commentaires</label>
<input type="radio" name="intérêt" value="3" id="3" /> <label for="13-16 commentaires">13-16 commentaires</label>
<input type="radio" name="intérêt" value="4" id="4" /> <label for="17-20 commentaires">17-20 commentaires</label>
<input type="radio" name="intérêt" value="5" id="5" /> <label for="21-24 commentaires">21-24 commentaires</label>
<input type="radio" name="intérêt" value="6" id="6" /> <label for="25 et + commentaires">25 et + commentaires</label>
<br />
<br />
</div>
<br />
</td></tr></table>
<table class="forumline" width="100%" border="0" cellspacing="0" cellpadding="0" style="margin-top:6px;">
<tr class="modactions">
<td align="center" nowrap="nowrap" class="modgen modadmin">
<input name="post" type="submit" value=" " class="formulaire bouton_envoyer" />
</td>
</tr>
</table>
</form>
Quelqu'un peut-il m'aider ?
Merci d'avance.
Dernière édition par Phyliono le Mer 22 Fév 2017 - 18:52, édité 1 fois
Re: Calcul dans un formulaire
Coucou
Pour commencer, on va "convertir" chaque "value" en un nombre (par défaut, le code pensera qu'il s'agit d'un texte). Pour ça, on va juste devoir multiplier la valeur par 1. Par exemple :
Et on va ajouter ça dans le total. Attention, ceci form.total.value [/code] signifie : je vais chercher la valeur du champ "total" dans mon formulaire. Or, celui-ci n'existe pas. C'est toi qui doit créer cette variable (= l'info à enregistrer). On va commencer par créer cette variable et lui donner lui donner la somme de chaque élément :
On va mettre ça avant la variable "txt_message" :
et ensuite, on remplace ça:
[b]/!\ Attention /!\
Pas d'accents, espaces ou caractères spéciaux dans les "name" d'un champ de formulaire
-----
Voici ton code corrigé et modifié :
Pour commencer, on va "convertir" chaque "value" en un nombre (par défaut, le code pensera qu'il s'agit d'un texte). Pour ça, on va juste devoir multiplier la valeur par 1. Par exemple :
- Code:
form.importance.value * 1
Et on va ajouter ça dans le total. Attention, ceci form.total.value [/code] signifie : je vais chercher la valeur du champ "total" dans mon formulaire. Or, celui-ci n'existe pas. C'est toi qui doit créer cette variable (= l'info à enregistrer). On va commencer par créer cette variable et lui donner lui donner la somme de chaque élément :
- Code:
var total = form.importance.value*1 form.innovation.value*1 form.rigueur.value*1 form.redaction.value*1 form.synthese.value*1 form.interet.value*1 ;
On va mettre ça avant la variable "txt_message" :
- Code:
var total = form.importance.value*1 form.innovation.value*1 form.rigueur.value*1 form.redaction.value*1 form.synthese.value*1 form.interet.value*1 ;
var txt_message = "[t
et ensuite, on remplace ça:
- Code:
"TOTAL %u2014 " form.total.value "[/center][/td][/tr][/table]\n";
- Code:
"TOTAL %u2014 " total "[/center][/td][/tr][/table]\n";
[b]/!\ Attention /!\
Pas d'accents, espaces ou caractères spéciaux dans les "name" d'un champ de formulaire
-----
Voici ton code corrigé et modifié :
- Code:
<style>
#form_journ label{
font:bold 11px ubuntu, verdana;
display:block;
text-align:center;
}
#form_journ select,#form_journ input[type=text],#form_journ input[type=url]{
height:25px!important;margin:10px 6px 0 0;padding:0 5px;
}
.court{
width:195px!important;
}
label{
display:inline!important;
}
</style>
<script type="text/javascript">
function envoiMessage(form)
{if(form.titre.value=='')
{
alert("Vous devez indiquer le titre de l'article");
return false;
}
else if(form.lien.value=='')
{
alert("Vous devez indiquer le lien de l'article");
return false;
}
else if(form.pseudo.value=='')
{
alert("Vous devez indiquer le pseudo de l'auteur de l'article");
return false;
}
else
{
var total = form.importance.value*1 form.innovation.value*1 form.rigueur.value*1 form.redaction.value*1 form.synthese.value*1 form.interet.value*1 ;
var txt_message = "[table class='vert' align='center' width='70%'][tr][td][center][size=16][url=" form.lien.value "]" form.titre.value "[/url][/size]\n"
"[size=14]" form.pseudo.value "[/size][/center][/td][/tr][/table]\n"
"[table class='jaune' align='center' width='80%'][tr][td][center][size=16]Critères de rémunération[/size]\n\n"
"Importance %u2014 " form.importance.value " étoiles :e:\n"
"Innovation %u2014 " form.innovation.value " étoiles :e:\n"
"Rigueur %u2014 " form.rigueur.value " étoiles :e:\n"
"Rédaction %u2014 " form.redaction.value " étoiles :e:\n"
"Synthèse %u2014 " form.synthese.value " étoiles :e:\n"
"Intérêt %u2014 " form.interet.value " étoiles :e:\n\n"
"TOTAL %u2014 " total "[/center][/td][/tr][/table]\n";
console.log(total);
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
form.subject.value = "Rémunération de " form.pseudo.value "";
return true;
}
}
</script>
<form action="test.html" method="post" name="post" enctype="multipart/form-data" onSubmit="return(envoiMessage(this))" id="form_journ">
<input type="hidden" name="mode" value="reply" /><!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="subject" value="" />
<input type="hidden" name="t" value="3151" />
<table style="width: 100%;" cellpadding="0" cellspacing="1" border="0" class="forumline">
<tr>
<th nowrap="nowrap" width="100%" class="secondarytitle">
<h2>Grille d'évalutation</h2>
</th>
</tr>
<tr>
<td height="6">
</td>
</tr>
<tr>
<td class="row1"><br /><div align="center">
<label for="titre">Titre de l'article : <font color="red">*</font></label><br />
<input name="titre" id="titre" type="text" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="lien">Lien de l'article : <font color="red">*</font></label><br />
<input name="lien" id="lien" type="url" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="pseudo">Pseudo du journaliste : <font color="red">*</font></label><br />
<input name="pseudo" id="pseudo" type="text" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="importance">Est-ce que le sujet est important ? <font color="red">*</font></label><br />
<input type="radio" name="importance" value="0" id="0" /> <label for="Non">Non</label>
<input type="radio" name="importance" value="1" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="importance" value="2" id="2" /> <label for="Important">Important</label>
<input type="radio" name="importance" value="3" id="3" /> <label for="Essentiel">Essentiel</label>
<br />
<br />
<label for="innovation">Est-ce que le sujet est innovant ? <font color="red">*</font></label><br />
<input type="radio" name="innovation" value="0" id="0" /> <label for="Répétitif">Répétitif</label>
<input type="radio" name="innovation" value="1" id="1" /> <label for="Complémentaire">Complémentaire</label>
<input type="radio" name="innovation" value="2" id="2" /> <label for="Nouveau">Nouveau</label>
<input type="radio" name="innovation" value="3" id="3" /> <label for="Révolutionnaire">Révolutionnaire</label>
<br />
<br />
<label for="rigueur">Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></label><br />
<input type="radio" name="rigueur" value="0" id="0" /> <label for=" 4 erreurs"> 4 erreurs</label>
<input type="radio" name="rigueur" value="1" id="1" /> <label for="3-4 erreurs">3-4 erreurs</label>
<input type="radio" name="rigueur" value="2" id="2" /> <label for="1-2 erreurs">1-2 erreurs</label>
<input type="radio" name="rigueur" value="3" id="3" /> <label for="Aucune">Aucune</label>
<br />
<br />
<label for="redaction">Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></label><br />
<input type="radio" name="redaction" value="0" id="0" /> <label for="Non">Non</label>
<input type="radio" name="redaction" value="1" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="redaction" value="2" id="2" /> <label for="Varié">Varié</label>
<br />
<br />
<label for="synthese">Est-ce que la taille est adaptée ? <font color="red">*</font></label><br />
<input type="radio" name="synthese" value="0" id="0" /> <label for="Trop court">Trop court</label>
<input type="radio" name="synthese" value="1" id="1" /> <label for="Court">Court</label>
<input type="radio" name="synthese" value="3" id="3" /> <label for="Adapté">Adapté</label>
<input type="radio" name="synthese" value="2" id="2" /> <label for="Long">Long</label>
<input type="radio" name="synthese" value="1" id="1" /> <label for="Trop long">Trop long</label>
<br />
<br />
<label for="interet">Est-ce qu'il a suscité beaucoup de réactions ? <font color="red">*</font></label><br />
<input type="radio" name="interet" value="0" id="0" /> <label for="0-4 commentaires">0-4 commentaires</label>
<input type="radio" name="interet" value="1" id="1" /> <label for="5-8 commentaires">5-8 commentaires</label>
<input type="radio" name="interet" value="2" id="2" /> <label for="9-12 commentaires">9-12 commentaires</label>
<input type="radio" name="interet" value="3" id="3" /> <label for="13-16 commentaires">13-16 commentaires</label>
<input type="radio" name="interet" value="4" id="4" /> <label for="17-20 commentaires">17-20 commentaires</label>
<input type="radio" name="interet" value="5" id="5" /> <label for="21-24 commentaires">21-24 commentaires</label>
<input type="radio" name="interet" value="6" id="6" /> <label for="25 et commentaires">25 et commentaires</label>
<br />
<br />
</div>
<br />
</td></tr></table>
<table class="forumline" width="100%" border="0" cellspacing="0" cellpadding="0" style="margin-top:6px;">
<tr class="modactions">
<td align="center" nowrap="nowrap" class="modgen modadmin">
<input name="post" type="submit" value=" " class="formulaire bouton_envoyer" />
</td>
</tr>
</table>
</form>
Re: Calcul dans un formulaire
Bonjour,
Merci beaucoup ! Pensez-vous que je puisse rajouter dans les "value" de chaque choix multiple un mot et que le calcul s'effectue tout de même, par exemple :
Ou qu'il y ait moyen de contourner pour que ça fonctionne ? Merci d'avance, je vous renvoie le code du formulaire légèrement modifié :
Merci !
Merci beaucoup ! Pensez-vous que je puisse rajouter dans les "value" de chaque choix multiple un mot et que le calcul s'effectue tout de même, par exemple :
- Code:
<label for="importance">Est-ce que le sujet est important ? <font color="red">*</font></label><br />
<input type="radio" name="importance" value="Non — 0" id="0" /> <label for="Non">Non</label>
<input type="radio" name="importance" value="Un peu — 1" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="importance" value="Important — 2" id="2" /> <label for="Important">Important</label>
<input type="radio" name="importance" value="Essentiel — 3" id="3" /> <label for="Essentiel">Essentiel</label>
Ou qu'il y ait moyen de contourner pour que ça fonctionne ? Merci d'avance, je vous renvoie le code du formulaire légèrement modifié :
- Code:
<style>
#form_journ label{
font:bold 11px ubuntu, verdana;
display:block;
text-align:center;
}
#form_journ select,#form_journ input[type=text],#form_journ input[type=url]{
height:25px!important;margin:10px 6px 0 0;padding:0 5px;
}
.court{
width:195px!important;
}
label{
display:inline!important;
}
</style>
<script type="text/javascript">
function envoiMessage(form)
{if(form.titre.value=='')
{
alert("Vous devez indiquer le titre de l'article");
return false;
}
else if(form.lien.value=='')
{
alert("Vous devez indiquer le lien de l'article");
return false;
}
else if(form.pseudo.value=='')
{
alert("Vous devez indiquer le pseudo de l'auteur de l'article");
return false;
}
else
{
var total = form.importance.value*1 + form.innovation.value*1 + form.rigueur.value*1 + form.presentation.value*1 + form.synthese.value*1 + form.interet.value*1 ;
var txt_message = "[table class='vert' align='center' width='70%'][tr][td][center][size=16][url=" + form.lien.value + "]" + form.titre.value + "[/url][/size]\n"
+ "[size=14]" + form.pseudo.value + "[/size][/center][/td][/tr][/table]\n"
+ "[table class='jaune' align='center' width='80%'][tr][td][center][size=16]Critères de rémunération[/size]\n\n"
+ "Importance — " + form.importance.value + " étoiles :e:\n"
+ "Innovation — " + form.innovation.value + " étoiles :e:\n"
+ "Rigueur — " + form.rigueur.value + " étoiles :e:\n"
+ "Synthèse — " + form.synthese.value + " étoiles :e:\n"
+ "Présentation — " + form.presentation.value + " étoiles :e:\n"
+ "Intérêt — " + form.interet.value + " étoiles :e:\n\n"
+ "TOTAL — " + total + "[/center][/td][/tr][/table]\n";
console.log(total);
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
form.subject.value = "Rémunération de " + form.pseudo.value + "";
return true;
}
}
</script>
<form action="/post" method="post" name="post" enctype="multipart/form-data" onSubmit="return(envoiMessage(this))" id="form_journ">
<input type="hidden" name="mode" value="reply" /><!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="subject" value="" />
<input type="hidden" name="t" value="3151" />
<table style="width: 100%;" cellpadding="0" cellspacing="1" border="0" class="forumline">
<tr>
<th nowrap="nowrap" width="100%" class="secondarytitle">
<h2>Grille d'évalutation</h2>
</th>
</tr>
<tr>
<td height="6">
</td>
</tr>
<tr>
<td class="row1"><br /><div align="center">
<label for="titre">Titre de l'article : <font color="red">*</font></label><br />
<input name="titre" id="titre" type="text" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="lien">Lien de l'article : <font color="red">*</font></label><br />
<input name="lien" id="lien" type="url" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="pseudo">Pseudo du journaliste : <font color="red">*</font></label><br />
<input name="pseudo" id="pseudo" type="text" class="formulaire" style="height:15px;" value=""/>
<br />
<br />
<label for="importance">Est-ce que le sujet est important ? <font color="red">*</font></label><br />
<input type="radio" name="importance" value="0" id="0" /> <label for="Non">Non</label>
<input type="radio" name="importance" value="1" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="importance" value="2" id="2" /> <label for="Important">Important</label>
<input type="radio" name="importance" value="3" id="3" /> <label for="Essentiel">Essentiel</label>
<br />
<br />
<label for="innovation">Est-ce que le sujet est innovant ? <font color="red">*</font></label><br />
<input type="radio" name="innovation" value="0" id="0" /> <label for="Répétitif">Répétitif</label>
<input type="radio" name="innovation" value="1" id="1" /> <label for="Complémentaire">Complémentaire</label>
<input type="radio" name="innovation" value="2" id="2" /> <label for="Nouveau">Nouveau</label>
<input type="radio" name="innovation" value="3" id="3" /> <label for="Révolutionnaire">Révolutionnaire</label>
<br />
<br />
<label for="rigueur">Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></label><br />
<input type="radio" name="rigueur" value="0" id="0" /> <label for=" 4 erreurs"> 4 erreurs</label>
<input type="radio" name="rigueur" value="1" id="1" /> <label for="3-4 erreurs">3-4 erreurs</label>
<input type="radio" name="rigueur" value="2" id="2" /> <label for="1-2 erreurs">1-2 erreurs</label>
<input type="radio" name="rigueur" value="3" id="3" /> <label for="Aucune">Aucune</label>
<br />
<br />
<label for="synthese">Est-ce que la taille est adaptée ? <font color="red">*</font></label><br />
<input type="radio" name="synthese" value="0" id="0" /> <label for="Trop court">Trop court</label>
<input type="radio" name="synthese" value="1" id="1" /> <label for="Court">Court</label>
<input type="radio" name="synthese" value="3" id="3" /> <label for="Adapté">Adapté</label>
<input type="radio" name="synthese" value="2" id="2" /> <label for="Long">Long</label>
<input type="radio" name="synthese" value="1" id="1" /> <label for="Trop long">Trop long</label>
<br />
<br />
<label for="presentation">Est-ce que la présentation est attrayante ? <font color="red">*</font></label><br />
<input type="radio" name="presentation" value="0" id="0" /> <label for="Simple">Simple</label>
<input type="radio" name="presentation" value="1" id="1" /> <label for="Bien">Bien</label>
<input type="radio" name="presentation" value="2" id="2" /> <label for="Très bien">Très bien</label>
<br />
<br />
<label for="interet">Est-ce qu'il a suscité beaucoup de réactions ? <font color="red">*</font></label><br />
<input type="radio" name="interet" value="0" id="0" /> <label for="0-4 commentaires">0-4 commentaires</label>
<input type="radio" name="interet" value="1" id="1" /> <label for="5-8 commentaires">5-8 commentaires</label>
<input type="radio" name="interet" value="2" id="2" /> <label for="9-12 commentaires">9-12 commentaires</label>
<input type="radio" name="interet" value="3" id="3" /> <label for="13-16 commentaires">13-16 commentaires</label>
<input type="radio" name="interet" value="4" id="4" /> <label for="17-20 commentaires">17-20 commentaires</label>
<input type="radio" name="interet" value="5" id="5" /> <label for="21-24 commentaires">21-24 commentaires</label>
<input type="radio" name="interet" value="6" id="6" /> <label for="25 et commentaires">25 et commentaires</label>
<br />
<br />
</div>
<br />
</td></tr></table>
<table class="forumline" width="100%" border="0" cellspacing="0" cellpadding="0" style="margin-top:6px;">
<tr class="modactions">
<td align="center" nowrap="nowrap" class="modgen modadmin">
<input name="post" type="submit" value=" " class="formulaire bouton_envoyer" />
</td>
</tr>
</table>
</form>
Merci !
Re: Calcul dans un formulaire
Coucou
Hum... Non ça ne sera pas possible, mais ce qu'on peut faire, c'est créer un tableau d'équivalence. Par exemple :
En javascript, on l'écrira comme ça :
et on appelera la valeur de cette façon :
et dans ton html, on aura :
Si tu veux mettre en place ceci, ça va nous faire revoir tout le javascript de ton formulaire par contre (ça ne sera ni long ni compliqué cela dit ^^ )
Hum... Non ça ne sera pas possible, mais ce qu'on peut faire, c'est créer un tableau d'équivalence. Par exemple :
Tableau importance :
value = Non | chiffre = 0
value = Un peu | chiffre = 1
value = Important | chiffre = 2
value = Essentiel | chiffre = 3
En javascript, on l'écrira comme ça :
- Code:
// Valeur du champ "est-ce que le sujet est important"
var importanceVal = form.importance.value
, importance = {
'Non': 0,
'Un peu': 1,
'Important': 2,
'Essentiel': 3
};
et on appelera la valeur de cette façon :
- Code:
importance[importanceVal]
et dans ton html, on aura :
- Code:
<label for="importance">Est-ce que le sujet est important ? <font color="red">*</font></label><br />
<input type="radio" name="importance" value="Non" id="0" /> <label for="Non">Non</label>
<input type="radio" name="importance" value="Un peu" id="1" /> <label for="Un peu">Un peu</label>
<input type="radio" name="importance" value="Important" id="2" /> <label for="Important">Important</label>
<input type="radio" name="importance" value="Essentiel" id="3" /> <label for="Essentiel">Essentiel</label>
Si tu veux mettre en place ceci, ça va nous faire revoir tout le javascript de ton formulaire par contre (ça ne sera ni long ni compliqué cela dit ^^ )
Re: Calcul dans un formulaire
Bonjour,
Oui j'aimerais bien si possible... Ce sera beaucoup plus clair.
Merci beaucoup !
Oui j'aimerais bien si possible... Ce sera beaucoup plus clair.
Merci beaucoup !
Re: Calcul dans un formulaire
Ok d'acc ^^
Alors, au boulot ^^
On va commencer par le html et changer chaque value :
Et j'ai modifié un peu ta CSS :
Bon, la maniaque que je suis à ranger ton code Ne m'en veux pas
<hr />
Le javacript maintenant. On va commencer par déclarer chaque variable, chaque tableau
Et on met tout ça dans le message :
<br />
Bref ^^ Trêve de blabla, voici ton code tout propre (et qui devrait fonctionner )
Alors, au boulot ^^
On va commencer par le html et changer chaque value :
- Code:
<form action="/post" method="post" name="post" enctype="multipart/form-data" onSubmit="return(envoiMessage(this))" id="form_journ">
<!-- Champs cachés pour envoi du formulaire -->
<input type="hidden" name="mode" value="reply" /><!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="subject" value="" />
<input type="hidden" name="t" value="3151" />
<table style="width: 100%;" cellpadding="0" cellspacing="1" border="0" class="forumline">
<tr>
<th nowrap="nowrap" width="100%" class="secondarytitle">
<h2>Grille d'évalutation</h2>
</th>
</tr>
<tr>
<td height="6"></td>
</tr>
<!-- Champs texte -->
<tr>
<td class="row1">
<p>
<label for="titre">Titre de l'article : <font color="red">*</font></label>
<br />
<input name="titre" id="titre" type="text" class="formulaire" style="height:15px;" />
</p>
<p>
<label for="lien">Lien de l'article : <font color="red">*</font></label>
<br />
<input name="lien" id="lien" type="url" class="formulaire" style="height:15px;" />
</p>
<p>
<label for="pseudo">Pseudo du journaliste : <font color="red">*</font></label>
<br />
<input name="pseudo" id="pseudo" type="text" class="formulaire" style="height:15px;" />
</p>
<!-- Champs choix -->
<p>
<span>Est-ce que le sujet est important ? <font color="red">*</font></span>
<input type="radio" name="importance" value="Non" id="importance-non" /> <label for="importance-non">Non</label>
<input type="radio" name="importance" value="Un peu" id="importance-peu" /> <label for="importance-peu">Un peu</label>
<input type="radio" name="importance" value="Important" id="importance-important" /> <label for="importance-important">Important</label>
<input type="radio" name="importance" value="Essentiel" id="importance-essentiel" /> <label for="importance-essentiel">Essentiel</label>
</p>
<p>
<span>Est-ce que le sujet est innovant ? <font color="red">*</font></span>
<input type="radio" name="innovation" value="Répétitif" id="innovation-repetitif" /> <label for="innovation-repetitif">Répétitif</label>
<input type="radio" name="innovation" value="Complémentaire" id="innovation-complementaire" /> <label for="innovation-complementaire">Complémentaire</label>
<input type="radio" name="innovation" value="Nouveau" id="innovation-nouveau" /> <label for="innovation-nouveau">Nouveau</label>
<input type="radio" name="innovation" value="Révolutionnaire" id="innovation-revolutionnaire" /> <label for="innovation-revolutionnaire">Révolutionnaire</label>
</p>
<p>
<span>Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></span>
<input type="radio" name="rigueur" value="+4 erreurs" id="rigueur-4" /> <label for="rigueur-4">+4 erreurs</label>
<input type="radio" name="rigueur" value="3-4 erreurs" id="rigueur-34" /> <label for="rigueur-34">3-4 erreurs</label>
<input type="radio" name="rigueur" value="1-2 erreurs" id="rigueur-12" /> <label for="rigueur-12">1-2 erreurs</label>
<input type="radio" name="rigueur" value="Aucune" id="rigueur-0" /> <label for="rigueur-0">Aucune</label>
</p>
<p>
<span>Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></span>
<input type="radio" name="redaction" value="Non" id="redaction-non" /> <label for="redaction-non">Non</label>
<input type="radio" name="redaction" value="Un peu" id="redaction-peu" /> <label for="redaction-peu">Un peu</label>
<input type="radio" name="redaction" value="Varié" id="redaction-varie" /> <label for="redaction-varie">Varié</label>
</p>
<p>
<span>Est-ce que la taille est adaptée ? <font color="red">*</font></span>
<input type="radio" name="synthese" value="Trop Court" id="synthese-tp-court" /> <label for="synthese-tp-court">Trop court</label>
<input type="radio" name="synthese" value="Court" id="synthese-court" /> <label for="synthese-court">Court</label>
<input type="radio" name="synthese" value="Adapté" id="synthese-adapte" /> <label for="synthese-adapte">Adapté</label>
<input type="radio" name="synthese" value="Long" id="synthese-long" /> <label for="synthese-long">Long</label>
<input type="radio" name="synthese" value="Trop long" id="synthese-tp-long" /> <label for="synthese-tp-long">Trop long</label>
</p>
<p>
<span>Est-ce qu'il a suscité beaucoup de réactions ? <font color="red">*</font></span>
<input type="radio" name="interet" value="0-4 commentaires" id="interet-04" /> <label for="interet-04">0-4 commentaires</label>
<input type="radio" name="interet" value="5-8 commentaires" id="interet-58" /> <label for="interet-58">5-8 commentaires</label>
<input type="radio" name="interet" value="9-12 commentaires" id="interet-912" /> <label for="interet-912">9-12 commentaires</label>
<input type="radio" name="interet" value="13-16 commentaires" id="interet-1316" /> <label for="interet-1316">13-16 commentaires</label>
<input type="radio" name="interet" value="17-20 commentaires" id="interet-1720" /> <label for="interet-1720">17-20 commentaires</label>
<input type="radio" name="interet" value="21-24 commentaires" id="interet-2124" /> <label for="interet-2124">21-24 commentaires</label>
<input type="radio" name="interet" value="25 et + commentaires" id="interet-25" /> <label for="interet-25">25 et + commentaires</label>
</p>
<!-- Boutons -->
<button type="reset" class="formulaire bouton_envoyer">Annuler</button>
<button name="post" type="submit" class="formulaire bouton_envoyer">Envoyer</button>
</td>
</tr>
</table>
</form>
Et j'ai modifié un peu ta CSS :
- Code:
<style>
#form_journ{
text-align: center;
}
#form_journ label,
#form_journ span{
font:bold 11px ubuntu, verdana;
text-align:center;
}
#form_journ select,
#form_journ input[type="text"],
#form_journ input[type="url"],
#form_jour button{
display: inline-block;
height: 25px !important;
line-height: 25px;
margin:10px 6px 0 0;
padding:0 5px;
}
.court{
width:195px!important;
}
#form_journ span{
display: block;
}
</style>
Bon, la maniaque que je suis à ranger ton code Ne m'en veux pas
<hr />
Le javacript maintenant. On va commencer par déclarer chaque variable, chaque tableau
- Code:
// On enregistrer chaque valeur
var titreArticle = form.titre.value
, lienArticle = form.lien.value
, pseudoJournaliste = form.pseudo.value
, importanceVal = form.importance.value
, innovationVal = form.innovation.value
, rigueurVal = form.rigueur.value
, redactionVal = form.redaction.value
, syntheseVal = form.synthese.value
, interetVal = form.interet.value
// On crée les tableaux d'équivalence pour chaque champs
, importance = {
'Non': 0,
'Un peu': 1,
'Important': 2,
'Essentiel': 3
}
, innovation = {
'Répétitif': 0,
'Complémentaire': 1,
'Nouveau': 2,
'Révolutionnaire': 3
}
, rigueur = {
'+4 erreurs': 0,
'3-4 erreurs': 1,
'1-2 erreurs': 2,
'Aucune': 4
}
, redaction = {
'Non': 0,
'Un peu': 1,
'Varié': 2
}
, synthese = {
'Trop court': 0,
'Court': 1,
'Adapté': 3,
'Long': 2,
'Trop long': 1
}
, interet = {
'0-4 commentaires': 0,
'5-8 commentaires': 1,
'9-12 commentaires': 2,
'13-16 commentaires': 3,
'17-20 commentaires': 4,
'21-24 commentaires': 5,
'25 et + commentaires': 6
}
// On additionne toutes les sommes
, total = importance[importanceVal] + innovation[innovationVal] + rigueur[rigueurVal] + redaction[redactionVal] + synthese[syntheseVal] + interet[interetVal]
Et on met tout ça dans le message :
- Code:
txt_message = '[table class="vert" align="center" width="70%"][tr][td][center]'+
'[size=16][url='+ lienArticle +']'+ titreArticle +' [/url][/size]<br />'+
'[size=14]'+ pseudoJournaliste +'[/size]'+
'[/center][/td][/tr][/table]'+
'[table class="jaune" align="center" width="80%"][tr][td][center]'+
'[size=16]Critères de rémunération[/size]<br />'+
'Importance : '+ importanceVal +' | '+ importance[importanceVal] +' étoile(s) <br />'+
'Innovation : '+ innovationVal +' | '+ innovation[innovationVal] +' étoile(s) <br />'+
'Rigueur : '+ rigueurVal +' | '+ rigueur[rigueurVal] +' étoile(s) <br />'+
'Rédaction : '+ redactionVal +' | '+ redaction[redactionVal] +' étoile(s) <br />'+
'Synthèse : '+ syntheseVal +' | '+ synthese[syntheseVal] +' étoile(s) <br />'+
'Intérêt : '+ interetVal +' | '+ interet[interetVal] +' étoile(s) <br />'+
'TOTAL : '+ total +''+
'[/center][/td][/tr][/table]';
<br />
Bref ^^ Trêve de blabla, voici ton code tout propre (et qui devrait fonctionner )
- Code:
<style>
#form_journ{
text-align: center;
}
#form_journ label,
#form_journ span{
font:bold 11px ubuntu, verdana;
text-align:center;
}
#form_journ select,
#form_journ input[type="text"],
#form_journ input[type="url"],
#form_jour button{
display: inline-block;
height: 25px !important;
line-height: 25px;
margin:10px 6px 0 0;
padding:0 5px;
}
.court{
width:195px!important;
}
#form_journ span{
display: block;
}
</style>
<script type="text/javascript">
function envoiMessage(form){
if(form.titre.value==''){
alert("Vous devez indiquer le titre de l'article");
return false;
}else if(form.lien.value==''){
alert("Vous devez indiquer le lien de l'article");
return false;
}else if(form.pseudo.value==''){
alert("Vous devez indiquer le pseudo de l'auteur de l'article");
return false;
}else{
// Le formulaire est bien rempli, on va pouvoir l'envoyer
// On enregistrer chaque valeur
var titreArticle = form.titre.value
, lienArticle = form.lien.value
, pseudoJournaliste = form.pseudo.value
, importanceVal = form.importance.value
, innovationVal = form.innovation.value
, rigueurVal = form.rigueur.value
, redactionVal = form.redaction.value
, syntheseVal = form.synthese.value
, interetVal = form.interet.value
// On crée les tableaux d'équivalence pour chaque champs
, importance = {
'Non': 0,
'Un peu': 1,
'Important': 2,
'Essentiel': 3
}
, innovation = {
'Répétitif': 0,
'Complémentaire': 1,
'Nouveau': 2,
'Révolutionnaire': 3
}
, rigueur = {
'+4 erreurs': 0,
'3-4 erreurs': 1,
'1-2 erreurs': 2,
'Aucune': 4
}
, redaction = {
'Non': 0,
'Un peu': 1,
'Varié': 2
}
, synthese = {
'Trop court': 0,
'Court': 1,
'Adapté': 3,
'Long': 2,
'Trop long': 1
}
, interet = {
'0-4 commentaires': 0,
'5-8 commentaires': 1,
'9-12 commentaires': 2,
'13-16 commentaires': 3,
'17-20 commentaires': 4,
'21-24 commentaires': 5,
'25 et + commentaires': 6
}
// On additionne toutes les sommes
, total = importance[importanceVal] + innovation[innovationVal] + rigueur[rigueurVal] + redaction[redactionVal] + synthese[syntheseVal] + interet[interetVal]
// On met en page le message
, txt_message = '[table class="vert" align="center" width="70%"][tr][td][center]'+
'[size=16][url='+ lienArticle +']'+ titreArticle +' [/url][/size]<br />'+
'[size=14]'+ pseudoJournaliste +'[/size]'+
'[/center][/td][/tr][/table]'+
'[table class="jaune" align="center" width="80%"][tr][td][center]'+
'[size=16]Critères de rémunération[/size]<br />'+
'Importance : '+ importanceVal +' | '+ importance[importanceVal] +' étoile(s) <br />'+
'Innovation : '+ innovationVal +' | '+ innovation[innovationVal] +' étoile(s) <br />'+
'Rigueur : '+ rigueurVal +' | '+ rigueur[rigueurVal] +' étoile(s) <br />'+
'Rédaction : '+ redactionVal +' | '+ redaction[redactionVal] +' étoile(s) <br />'+
'Synthèse : '+ syntheseVal +' | '+ synthese[syntheseVal] +' étoile(s) <br />'+
'Intérêt : '+ interetVal +' | '+ interet[interetVal] +' étoile(s) <br />'+
'TOTAL : '+ total +''+
'[/center][/td][/tr][/table]';
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
form.subject.value = "Rémunération de "+ form.pseudo.value +"";
// On envoie le message
return true;
}
}
</script>
<form action="/post" method="post" name="post" enctype="multipart/form-data" onSubmit="return(envoiMessage(this))" id="form_journ">
<!-- Champs cachés pour envoi du formulaire -->
<input type="hidden" name="mode" value="reply" /><!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="subject" value="" />
<input type="hidden" name="t" value="3151" />
<table style="width: 100%;" cellpadding="0" cellspacing="1" border="0" class="forumline">
<tr>
<th nowrap="nowrap" width="100%" class="secondarytitle">
<h2>Grille d'évalutation</h2>
</th>
</tr>
<tr>
<td height="6"></td>
</tr>
<!-- Champs texte -->
<tr>
<td class="row1">
<p>
<label for="titre">Titre de l'article : <font color="red">*</font></label>
<br />
<input name="titre" id="titre" type="text" class="formulaire" style="height:15px;" />
</p>
<p>
<label for="lien">Lien de l'article : <font color="red">*</font></label>
<br />
<input name="lien" id="lien" type="url" class="formulaire" style="height:15px;" />
</p>
<p>
<label for="pseudo">Pseudo du journaliste : <font color="red">*</font></label>
<br />
<input name="pseudo" id="pseudo" type="text" class="formulaire" style="height:15px;" />
</p>
<!-- Champs choix -->
<p>
<span>Est-ce que le sujet est important ? <font color="red">*</font></span>
<input type="radio" name="importance" value="Non" id="importance-non" /> <label for="importance-non">Non</label>
<input type="radio" name="importance" value="Un peu" id="importance-peu" /> <label for="importance-peu">Un peu</label>
<input type="radio" name="importance" value="Important" id="importance-important" /> <label for="importance-important">Important</label>
<input type="radio" name="importance" value="Essentiel" id="importance-essentiel" /> <label for="importance-essentiel">Essentiel</label>
</p>
<p>
<span>Est-ce que le sujet est innovant ? <font color="red">*</font></span>
<input type="radio" name="innovation" value="Répétitif" id="innovation-repetitif" /> <label for="innovation-repetitif">Répétitif</label>
<input type="radio" name="innovation" value="Complémentaire" id="innovation-complementaire" /> <label for="innovation-complementaire">Complémentaire</label>
<input type="radio" name="innovation" value="Nouveau" id="innovation-nouveau" /> <label for="innovation-nouveau">Nouveau</label>
<input type="radio" name="innovation" value="Révolutionnaire" id="innovation-revolutionnaire" /> <label for="innovation-revolutionnaire">Révolutionnaire</label>
</p>
<p>
<span>Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></span>
<input type="radio" name="rigueur" value="+4 erreurs" id="rigueur-4" /> <label for="rigueur-4">+4 erreurs</label>
<input type="radio" name="rigueur" value="3-4 erreurs" id="rigueur-34" /> <label for="rigueur-34">3-4 erreurs</label>
<input type="radio" name="rigueur" value="1-2 erreurs" id="rigueur-12" /> <label for="rigueur-12">1-2 erreurs</label>
<input type="radio" name="rigueur" value="Aucune" id="rigueur-0" /> <label for="rigueur-0">Aucune</label>
</p>
<p>
<span>Est-ce qu'il y a beaucoup de fautes ou d'erreurs ? <font color="red">*</font></span>
<input type="radio" name="redaction" value="Non" id="redaction-non" /> <label for="redaction-non">Non</label>
<input type="radio" name="redaction" value="Un peu" id="redaction-peu" /> <label for="redaction-peu">Un peu</label>
<input type="radio" name="redaction" value="Varié" id="redaction-varie" /> <label for="redaction-varie">Varié</label>
</p>
<p>
<span>Est-ce que la taille est adaptée ? <font color="red">*</font></span>
<input type="radio" name="synthese" value="Trop Court" id="synthese-tp-court" /> <label for="synthese-tp-court">Trop court</label>
<input type="radio" name="synthese" value="Court" id="synthese-court" /> <label for="synthese-court">Court</label>
<input type="radio" name="synthese" value="Adapté" id="synthese-adapte" /> <label for="synthese-adapte">Adapté</label>
<input type="radio" name="synthese" value="Long" id="synthese-long" /> <label for="synthese-long">Long</label>
<input type="radio" name="synthese" value="Trop long" id="synthese-tp-long" /> <label for="synthese-tp-long">Trop long</label>
</p>
<p>
<span>Est-ce qu'il a suscité beaucoup de réactions ? <font color="red">*</font></span>
<input type="radio" name="interet" value="0-4 commentaires" id="interet-04" /> <label for="interet-04">0-4 commentaires</label>
<input type="radio" name="interet" value="5-8 commentaires" id="interet-58" /> <label for="interet-58">5-8 commentaires</label>
<input type="radio" name="interet" value="9-12 commentaires" id="interet-912" /> <label for="interet-912">9-12 commentaires</label>
<input type="radio" name="interet" value="13-16 commentaires" id="interet-1316" /> <label for="interet-1316">13-16 commentaires</label>
<input type="radio" name="interet" value="17-20 commentaires" id="interet-1720" /> <label for="interet-1720">17-20 commentaires</label>
<input type="radio" name="interet" value="21-24 commentaires" id="interet-2124" /> <label for="interet-2124">21-24 commentaires</label>
<input type="radio" name="interet" value="25 et + commentaires" id="interet-25" /> <label for="interet-25">25 et + commentaires</label>
</p>
<!-- Bouton -->
<input name="post" type="submit" class="formulaire bouton_envoyer" value="Envoyer">
</td>
</tr>
</table>
</form>
Re: Calcul dans un formulaire
Merci c'est parfait !
Bonne soirée à vous.
Bonne soirée à vous.
Sujets similaires
» Formulaire de calcul
» probleme dans formulaire
» Un lancé de dé dans un formulaire
» Nom du posteur dans un formulaire !
» Formulaire dans un sujet
» probleme dans formulaire
» Un lancé de dé dans un formulaire
» Nom du posteur dans un formulaire !
» Formulaire dans un sujet
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