[Formulaire] Cacher les champs vides à l'Envoi?

3 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu [Formulaire] Cacher les champs vides à l'Envoi?

Message par Mysticia Sam 23 Mar 2013 - 18:38

Bonjour,

Afin d'améliorer mon formulaire j'aurai souhaité savoir s'il était possible lorsque des champs n'ont pas été remplis qu'ils n'apparaissent pas lors de la création du sujet?

Exemple : si le Prénom et l'Age ne sont pas remplis

Prénom :
Age :


n'apparaitraient pas dans le sujet crée.


Je précise que j'ai volontairement laissé les champs vides "non obligatoires" à remplir.

Merci de votre aide Smile


Dernière édition par Mysticia le Mar 26 Mar 2013 - 20:55, édité 1 fois
Mysticia

Mysticia
*

Messages : 38
Inscrit(e) le : 24/02/2013

http://9mois.bbactif.com/
Mysticia a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Ea Dim 24 Mar 2013 - 2:23

Bonjour,


Si c'est le formulaire http://royaume-chimeres.forumetoile.com/h3- soit :

  • Vous mette le test directement dans le pâté, par exemple vous remplacez :

    Code:
    + "[b][color=#7e90ac]Ma date de naissance : [/color][/b]" + datepicker + '\n'
    Par :

    Code:
    + ( datepicker ? "[b][color=#7e90ac]Ma date de naissance : [/color][/b]" + datepicker + '\n' : "" )
    la structure condition ? valeur1 : valeur2 permet si la condition est vrai d'afficher la valeur1 sinon la valeur 2 ( une chaîne vide )

    datepicker sera faux si la chaîne est vide ( donc si on a laissé la case vide )

  • l'autre solution est de couper votre remplissage de la variable en plusieurs parties.

    par exemple alors vous remplaceriez :

    Code:
    var txt_message =""
    + "<div align='center'>[img]http://hitskin.com/themes/13/87/53/i_icon_mini_members.png[/img]" + '\n'
    + "<span style='font-size: 29px; font-family: Monotype Corsiva; color: #ccd8d9;'>" + pseudo + "</span></div>\n\n"
    + "[font=Monotype Corsiva][color=#6f919f][b][size=22]Qui suis-je?[/size][/b][/color][/font]" + '\n'
    + "[b][color=#7e90ac]Mon prénom : [/color][/b]" + prenom + '\n'
    + "[b][color=#7e90ac]Ma date de naissance : [/color][/b]" + datepicker + '\n'
    + "[b][color=#7e90ac]Ma description : [/color][/b]" + desc + '\n'
    + "[b][color=#7e90ac]Mes passions : [/color][/b]" + passion + '\n'
    + "[b][color=#7e90ac]Ma créature chimérique préférée : [/color][/b]" + chimere + '\n'
    + "[b][color=#7e90ac]Ma citation favorite : [/color][/b]" + citation + '\n'

    + "[b][color=#7e90ac]Si je pratique un Art ? [/color][/b]" + plumeEcrit + '\n';
    par :

    Code:
    var txt_message =""
    + "<div align='center'>[img]http://hitskin.com/themes/13/87/53/i_icon_mini_members.png[/img]" + '\n'
    + "<span style='font-size: 29px; font-family: Monotype Corsiva; color: #ccd8d9;'>" + pseudo + "</span></div>\n\n"
    + "[font=Monotype Corsiva][color=#6f919f][b][size=22]Qui suis-je?[/size][/b][/color][/font]" + '\n';

    if(prenom) {
    txt_message +=  "[b][color=#7e90ac]Mon prénom : [/color][/b]" + prenom + '\n'
    }
    if(datepicker) {
    txt_message += "[b][color=#7e90ac]Ma date de naissance : [/color][/b]" + datepicker + '\n'
    }
    txt_message += "[b][color=#7e90ac]Ma description : [/color][/b]" + desc + '\n'
    + "[b][color=#7e90ac]Mes passions : [/color][/b]" + passion + '\n'
    + "[b][color=#7e90ac]Ma créature chimérique préférée : [/color][/b]" + chimere + '\n'
    + "[b][color=#7e90ac]Ma citation favorite : [/color][/b]" + citation + '\n'

    + "[b][color=#7e90ac]Si je pratique un Art ? [/color][/b]" + plumeEcrit + '\n';
    en fait, c'est déjà environ ce qui est fait pour le :

    Code:
    if(form.plumeEcrit[0].checked == true) {
    txt_message += "[b][color=#7e90ac]L'Art que je pratique : [/color][/b]" + plumequoi + '\n'
    }

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Mysticia Dim 24 Mar 2013 - 4:34

Merci infiniement de me venir en aide!

Tout marche parfaitement, je me sers de votre 1ière méthode que j'arrive mieux à comprendre et appliquer par contre :

Pouvez vous m'aider pour cette partie car j'obtiens une erreur quand je poste le formulaire, je mets au mauvais endroit : "" )

Code:
txt_message += ( themes ? "[b][color=#7e90ac]Mon ou mes thèmes préférés : [/color][/b]\n[list]";
for(var i = 0; i < form.themes.length; i++)
{
if(form.themes[i].checked == true)
{ txt_message = txt_message + '[*]' + form.themes[i].value + '\n' : "" ); }
}
txt_message = txt_message + "[/list]";
Mysticia

Mysticia
*

Messages : 38
Inscrit(e) le : 24/02/2013

http://9mois.bbactif.com/
Mysticia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Ea Dim 24 Mar 2013 - 9:36

il faut mettre :

Code:
txt_message += ( themes ? "[b][color=#7e90ac]Mon ou mes thèmes préférés : [/color][/b]\n[list]" : "" );
ce qui revient donc au même que :

Code:
if(themes) {
  txt_message += "[b][color=#7e90ac]Mon ou mes thèmes préférés : [/color][/b]\n[list]";
}
Mais en fait, pour les thèmes c'est différent, ce sont des cases à cocher qui devraient déjà n'apparaître que si cochées grâce au code :

Code:
for(var i = 0; i < form.themes.length; i++)
{
  if(form.themes[i].checked == true)
  {
    txt_message = txt_message + '[*]' + form.themes[i].value + '\n' : "" );
  }
}
Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Mysticia Dim 24 Mar 2013 - 20:40

Excusez moi de vous déranger encore j'ai testé en remplaçant par vos différentes suggestions mais à chaque fois j'obtiens ceci :

Vous devez préciser un titre avant de pouvoir envoyer votre message.
Vous devez entrer un message avant de poster.


Pour rappel, je voudrais que la phrase "Mon ou mes thèmes préférés :" ne s'affichent pas si aucune case n'est cochée et que si au moins une est cochée le resultat soit sous format
Code:
[list][*][/list]
dans le sujet
Mysticia

Mysticia
*

Messages : 38
Inscrit(e) le : 24/02/2013

http://9mois.bbactif.com/
Mysticia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Mysticia Lun 25 Mar 2013 - 21:49

Petit Up Angel
Mysticia

Mysticia
*

Messages : 38
Inscrit(e) le : 24/02/2013

http://9mois.bbactif.com/
Mysticia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Ea Lun 25 Mar 2013 - 22:50

Il y a une erreur dans :

Code:
for(var i = 0; i < form.themes.length; i++)
{
if(form.themes[i].checked == true)
{ txt_message = txt_message + '[*]' + form.themes[i].value + '\n' : "" ); }
}
Cela devrait probablement plutôt être :

Code:
for(var i = 0; i < form.themes.length; i++)
{
  if(form.themes[i].checked == true)
  {
    txt_message = txt_message + '[*]' + form.themes[i].value + '\n';
  }
}

Et à la place de :

Code:
function envoiMessage(form)
{
{
Il devrait y avoir :

Code:
function envoiMessage(form)
{
Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Mysticia Mar 26 Mar 2013 - 0:51

Avec ce code :

Code:
txt_message += "[b][color=#7e90ac]Mon ou mes thèmes préférés : [/color][/b]\n[list]";
for(var i = 0; i < form.themes.length; i++)
{
  if(form.themes[i].checked == true)
  {
    txt_message = txt_message + '[*]' + form.themes[i].value + '\n';
  }
}

Mon ou mes thèmes préférés : s'affiche si aucune cose est cochée, je cherche l'inverse Sad
Et que si une case ou + est cochée la phrase s'affiche avec les résultats cochés sous forme de liste
Mon ou mes thèmes préférés :
  • Spiritualité
  • Paranormal
Mysticia

Mysticia
*

Messages : 38
Inscrit(e) le : 24/02/2013

http://9mois.bbactif.com/
Mysticia a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Ea Mar 26 Mar 2013 - 9:24

alors il faudrait faire comme ceci :

Code:
var mes_themes= ""
for(var i = 0; i < form.themes.length; i++)
{
  if(form.themes[i].checked == true)
  {
    mes_themes = mes_themes + '[*]' + form.themes[i].value + '\n';
  }
}
if(mes_themes) {
  txt_message += "[b][color=#7e90ac]Mon ou mes thèmes préférés : [/color][/b]\n[list]"+mes_themes+"[/list]";
}
On rempli une variable "mes_themes" avec les thèmes, et ensuite si elle n'est pas vide ( donc si il y a au moins un thème coché ), on ajoute la ligne souhaitée.

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Scoubifitz Mar 26 Mar 2013 - 17:31

Ea a écrit:Bonjour,
la structure condition ? valeur1 : valeur2 permet si la condition est vrai d'afficher la valeur1 sinon la valeur 2 ( une chaîne vide )

datepicker sera faux si la chaîne est vide ( donc si on a laissé la case vide )

Cordialement.

Merci beaucoup ! ^^

je connaissais la fonction condition ? valeur1 : valeur2 qui remplace le if (condition ){valeur1 }else{valeur2}

mais je cherchais aussi l'astuce pour les checkboxs et les radios ... c'est fou ce qu'une variable peut faire !^^

Scoubifitz

Scoubifitz
Membre actif

Masculin
Messages : 3732
Inscrit(e) le : 18/03/2008

https://scoubidous.superforum.fr/
Scoubifitz a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Formulaire] Cacher les champs vides à l'Envoi?

Message par Mysticia Mar 26 Mar 2013 - 20:54

Tout marche enfin parfaitement, grâce à vous, un grand Merci Ea ::pourtoi::

Je passe le sujet en résolu
Mysticia

Mysticia
*

Messages : 38
Inscrit(e) le : 24/02/2013

http://9mois.bbactif.com/
Mysticia a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum