Envoi de formulaire

2 participants

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

Résolu Envoi de formulaire

Message par Paradoxe Lun 1 Aoû 2011 - 18:15

Bonjour,

Depuis quelques jours, je tente de créer un formulaire pour faciliter la vie des membres de mon forum, mais - jusqu'à présent - cela ne fait que compliquer la mienne... J'ai lu les différents sujets qui ont été postés à ce propos sur le forum, mais je n'arrive toujours pas à comprendre et résoudre mon problème. Voilà pourquoi j'aurais besoin de votre aide.

Je vous explique la situation. Je tenterai de vous fournir le plus de détails possible, mais s'il vous en manque, n'hésitez pas à me le faire savoir. Tout d'abord, voici le code de mon formulaire :

Code:
<script type="text/javascript">
 function envoiMessage(form)
{var txt_message = "[b]Nom d'utilisateur:[/b]" + form.pseudo.value + '\n';
for(var i = 0; i < form.inscription.length; i++)
              {
                  if(form.inscription[i].checked == true) { txt_message = txt_message + '[*]' + form.inscription[i].value + '\n'; }
              };
           "[b]Commentaire : [/b]" + form.commentaire.value + '\n';
 // Insère le texte construit dans le champ caché "message" du formulaire
  form.message.value = txt_message;
}
   </script>
<form name="formulaire_bulletin_CE" action="http://coeurdenfant.forum-canada.com/posting.forum" method="post" enctype="multipart/form-data" onSubmit="envoiMessage(this)">
<fieldset>
<input name="titre" id="titre" value="Formulaire Bulletin CE" type="hidden"/>
<legend><b>Inscription/Désinscription au bulletin d'information CE</b></legend>
<input type="hidden" name="lt" value="0" />
<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="104" /> <!--  ID du forum dans lequel le message sera posté-->
<table>
<tr><td><br><label for="pseudo">Nom d'utilisateur : </label></td><td><br><input name="pseudo" id="pseudo" type="text" tabindex="10" /></td></tr>
<tr><td><label for="inscription">Je souhaite... </label></td><td><br><input name="inscription" id="ajout" value="ajout" type="radio" tabindex="20" /> <label for="ajout">...m'inscrire au bulletin d'information CE.</label><br>
<input name="inscription" id="retrait" value="retrait" type="radio" tabindex="30" /> <label for="retrait">...retirer mon nom de la liste d'envoi du bulletin d'information CE.</label></td></tr>
<tr><td><label for="commentaire">Commentaire : </label><br> <i>(facultatif)</i></td><td><br><textarea name="commentaire" id="commentaire" cols="40" rows="5" tabindex="40"></textarea></td></tr>
<tr><td><br><input name="envoyer" type="submit" tabindex="50" />
<input name="annuler" type="reset" tabindex="60" /></td></tr>
</table>
</fieldset>
</form>

J'ai créé une page HTML dans laquelle j'ai mis ce code, puis je l'ai insérée dans mon forum avec un Iframe dont voici le code:

Code:
<iframe src="http://coeurdenfant.forum-canada.com/h7-essai-17h49" style="width: 100%;height:500px;border: 0px;" Scrolling="no"> </iframe>

Mon formulaire apparaît comme il se doit sur mon forum (Capture), mais une fois qu'on a rempli les champs et qu'on clique sur "Envoyer", on est dirigé vers une page pour rédiger un message qui est elle-même située dans une page pour rédiger un message (Capture).

Ce que j'aimerais, c'est qu'une fois qu'on clique sur "Envoyer", le formulaire soit envoyé vers le forum dont l'ID est "f104" et que les membres voient apparaître un message qui leur confirme que le formulaire a été envoyé.

Je crois bien que mon problème est au niveau du script (javascript), mais je ne m'y connais malheureusement pas assez pour le trouver et le résoudre... Toutefois, j'aimerais bien comprendre, parce que j'aurai d'autres formulaires à créer et je ne voudrais pas être obligée de vous déranger à chaque fois...

Je vous remercie d'avoir pris le temps de me lire et je remercie également tous ceux et celles qui tenteront de m'aider!

Sur ce, je vous souhaite une agréable journée! Wink

Paradoxe

Paradoxe
*

Féminin
Messages : 46
Inscrit(e) le : 14/10/2009

http://iclasse2013.forumecole.com
Paradoxe a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Envoi de formulaire

Message par Ea Lun 1 Aoû 2011 - 18:54

Bonjour,


Pour l'ouverture du formulaire dans l'iframe, c'est la fonction normal ( si vous mettez une iframe avec google, vous ne voulez pas que à la recherche ça vous remplace votre page par la page de google ).

Pour choisir d'envoyer le formulaire sur la page parente, il faut mettre à la place de :

Code:
<form name="formulaire_bulletin_CE" action="http://coeurdenfant.forum-canada.com/posting.forum" method="post" enctype="multipart/form-data" onSubmit="envoiMessage(this)">
Ceci :

Code:
<form name="formulaire_bulletin_CE" action="http://coeurdenfant.forum-canada.com/posting.forum" method="post" enctype="multipart/form-data" onSubmit="envoiMessage(this)" target="parent">

Ensuite pour y voir plus clair, en indentant votre code ça donne :

Code:
<script type="text/javascript">
function envoiMessage(form) {
    var txt_message = "[b]Nom d'utilisateur:[/b]" + form.pseudo.value + '\n';
    for (var i = 0; i < form.inscription.length; i++) {
        if (form.inscription[i].checked == true) {
            txt_message = txt_message + '[*]' + form.inscription[i].value + '\n';
        }
    };
    "[b]Commentaire : [/b]" + form.commentaire.value + '\n';
    // Insère le texte construit dans le champ caché "message" du formulaire
    form.message.value = txt_message;
}
</script>
<form name="formulaire_bulletin_CE" action="http://coeurdenfant.forum-canada.com/posting.forum" method="post" enctype="multipart/form-data" onsubmit="envoiMessage(this)" target="parent">
   <fieldset>
      <input name="titre" id="titre" value="Formulaire Bulletin CE" type="hidden"/>
      <legend><b>Inscription/Désinscription au bulletin d'information CE</b></legend>
      <input type="hidden" name="lt" value="0"/>
      <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="104"/>
      <!--  ID du forum dans lequel le message sera posté-->
      <table>
      <tr>
         <td>
            <br>
            <label for="pseudo">Nom d'utilisateur : </label>
         </td>
         <td>
            <br>
            <input name="pseudo" id="pseudo" type="text" tabindex="10"/>
         </td>
      </tr>
      <tr>
         <td>
            <label for="inscription">Je souhaite... </label>
         </td>
         <td>
            <br>
            <input name="inscription" id="ajout" value="ajout" type="radio" tabindex="20"/><label for="ajout">...m'inscrire au bulletin d'information CE.</label><br>
            <input name="inscription" id="retrait" value="retrait" type="radio" tabindex="30"/><label for="retrait">...retirer mon nom de la liste d'envoi du bulletin d'information CE.</label>
         </td>
      </tr>
      <tr>
         <td>
            <label for="commentaire">Commentaire : </label><br>
            <i>(facultatif)</i>
         </td>
         <td>
            <br>
            <textarea name="commentaire" id="commentaire" cols="40" rows="5" tabindex="40"></textarea>
         </td>
      </tr>
      <tr>
         <td>
            <br>
            <input name="envoyer" type="submit" tabindex="50"/>
            <input name="annuler" type="reset" tabindex="60"/>
         </td>
      </tr>
      </table>
   </fieldset>
</form>
À part le :

Code:
"[b]Commentaire : [/b]" + form.commentaire.value + '\n';
Qui ne fait rien donc il devrait surement plutôt y avoir :

Code:
txt_message = txt_message + "[b]Commentaire : [/b]" + form.commentaire.value + '\n';
Le seul problème que je vois est qu'il n'y a pas de sujet, si il n'y a pas de sujet on arrive sur la page d'édition de message avec probablement " vous n'avez pas indiqué de sujet ".

Pour mettre toujours le même sujet il suffirait d'ajouter après :

Code:
<input type="hidden" name="lt" value="0" />
Ceci :

Code:
<input type="hidden" name="subject" value="nom des sujets" />
Et pour mettre plutôt ajout/retrait de pseudo comme titre il faudrait mettre quand même la ligne juste au dessus mais aussi changer la partie javascript pour :

Code:
<script type="text/javascript">
function envoiMessage(form) {
    var txt_message = "[b]Nom d'utilisateur:[/b]" + form.pseudo.value + '\n';
    var txt_subject = " de "+form.pseudo.value;
    for (var i = 0; i < form.inscription.length; i++) {
        if (form.inscription[i].checked == true) {
            txt_message = txt_message + '[*]' + form.inscription[i].value + '\n';
                  txt_subject = form.inscription[i].value+txt_subject;
        }
    };

    form.subject.value = txt_message;

    txt_message = txt_message + "[b]Commentaire : [/b]" + form.commentaire.value + '\n';
    // Insère le texte construit dans le champ caché "message" du formulaire
    form.message.value = txt_message;
}
</script>
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: Envoi de formulaire

Message par Paradoxe Lun 1 Aoû 2011 - 19:24

Bonjour Etana,

Merci beaucoup pour votre aide.

J'ai fait les changements que vous m'avez recommandé et il semble y avoir du progrès mais, quand je clique sur "envoyer", un nouvel onglet internet s'ouvre et j'arrive sur une page qui dit "Mode du sujet non spécifié" (Lien).

Voici le code que j'ai mis en page HTML:

Code:
<script type="text/javascript">
function envoiMessage(form) {
    var txt_message = "[b]Nom d'utilisateur:[/b]" + form.pseudo.value + '\n';
    var txt_subject = " de "+form.pseudo.value;
    for (var i = 0; i < form.inscription.length; i++) {
        if (form.inscription[i].checked == true) {
            txt_message = txt_message + '[*]' + form.inscription[i].value + '\n';
                  txt_subject = form.inscription[i].value+txt_subject;
        }
    };

    form.subject.value = txt_message;

    txt_message = txt_message + "[b]Commentaire : [/b]" + form.commentaire.value + '\n';
    // Insère le texte construit dans le champ caché "message" du formulaire
    form.message.value = txt_message;
}
</script>
<form name="formulaire_bulletin_CE" action="http://coeurdenfant.forum-canada.com/posting.forum" method="post" enctype="multipart/form-data" onsubmit="envoiMessage(this)" target="parent">
  <fieldset>
      <input name="titre" id="titre" value="Formulaire Bulletin CE" type="hidden">
      <legend><b>Inscription/Désinscription au bulletin d'information CE</b></legend>
      <input name="lt" value="0" type="hidden">
      <input name="subject" value="nom des sujets" type="hidden">
      <input name="mode" value="newtopic" type="hidden">
      <!-- Un nouveau topic sera créé -->
      <input name="topictype" value="0" checked="checked" type="hidden">
      <!-- Value 0: Sujet Normal (1 = Note / 2 = annonce) -->
      <input name="message" value="" type="hidden">
      <!-- Contiendra le texte du message -->
      <input name="f" value="104" type="hidden">
      <!--  ID du forum dans lequel le message sera posté-->
      <table>
      <tbody><tr>
        <td>
            <br>
            <label for="pseudo">Nom d'utilisateur : </label>
        </td>
        <td>
            <br>
            <input name="pseudo" id="pseudo" tabindex="10" type="text">
        </td>
      </tr>
      <tr>
        <td>
            <label for="inscription">Je souhaite... </label>
        </td>
        <td>
            <br>
            <input name="inscription" id="ajout" value="ajout" tabindex="20" type="radio"><label for="ajout">...m'inscrire au bulletin d'information CE.</label><br>
            <input name="inscription" id="retrait" value="retrait" tabindex="30" type="radio"><label for="retrait">...retirer mon nom de la liste d'envoi du bulletin d'information CE.</label>
        </td>
      </tr>
      <tr>
        <td>
            <label for="commentaire">Commentaire : </label><br>
            <i>(facultatif)</i>
        </td>
        <td>
            <br>
            <textarea name="commentaire" id="commentaire" cols="40" rows="5" tabindex="40"></textarea>
        </td>
      </tr>
      <tr>
        <td>
            <br>
            <input name="envoyer" tabindex="50" type="submit">
            <input name="annuler" tabindex="60" type="reset">
        </td>
      </tr>
      </tbody></table>
  </fieldset>
</form>

Aussi, je ne suis pas certaine d'avoir bien compris ce que vous disiez à propos de l'Iframe...

Merci encore!
Paradoxe

Paradoxe
*

Féminin
Messages : 46
Inscrit(e) le : 14/10/2009

http://iclasse2013.forumecole.com
Paradoxe a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Envoi de formulaire

Message par Ea Lun 1 Aoû 2011 - 20:00

Il faudrait remplacer le :

Code:
target="parent"
Par :

Code:
target="_parent"
Et remplacer :

Code:
 form.subject.value = txt_message;
Par :

Code:
  form.subject.value = txt_subject;
Et remplacer :

Code:
<input name="envoyer" tabindex="50" type="submit">
Par :

Code:
<input name="post" tabindex="50" type="submit">
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: Envoi de formulaire

Message par Paradoxe Lun 1 Aoû 2011 - 20:15

Merci beaucoup! Tout fonctionne maintenant! Smile

Problème résolu.
Paradoxe

Paradoxe
*

Féminin
Messages : 46
Inscrit(e) le : 14/10/2009

http://iclasse2013.forumecole.com
Paradoxe 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