IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

envoi formulaire via une fonction


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut envoi formulaire via une fonction
    Bonjour,
    j' ai un formulaire qui permet d' envoyer un mail à l' utilisateur si son adresse mail est reconnu dans le système.

    voici le code du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form method="post" name="forgotpassword" action={"/user/forgotpassword/"|ezurl} style="position:relative">
     
     	                                                    <label for="email" style="display:none">{"Email"|i18n('design/standard/user/forgotpassword')}:</label>
     
    																											<input type="text" name="UserEmail" id="new_email" value="{$wrong_email|wash}"/>
     
    																											<span id="forgot_error" style="display:none;color:red;font-weight:bold">Un e-mail vient de vous &ecirc;tre envoy&eacute; avec votre mot de passe</span>
     
    																											<span id="forgot_error1" style="display:none;color:red;font-weight:bold">D&eacute;sol&eacute;, nous n&rsquo; avons personne d&rsquo; enregistr&eacute; avec cet e-mail : veuillez r&eacute;essayer.</span>
    																													<input class="forgot_send" type="button" name="GenerateButton" value="" onclick="forgotpass_validate_email();"/>
    																																															</form>
    le code de la fonction est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function forgotpass_validate_email(){
     
    /* vérification adresse mail 
     
     code 
    ...........
    ....
     
    */
     
     
    setTimeout(
    	                              function(){
    	           	                              document.forgotpassword.action=url_forpass;
    						      document.forgotpassword.target="_self";
    						      document.forgotpassword.submit(); 
    						      document.location.href = url_log;// redirection vers une url autre 
    	           	                            },
    	                                          300
    	                            );
     
     
    }

    quand je clicque sur le bouton , la redirection marche mais le traitement (envoi d' un mail ne marche pas ).

    alors que si je remplace ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input class="forgot_send" type="button" name="GenerateButton" value="" onclick="forgotpass_validate_email();"/>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input class="forgot_send" type="submit" name="GenerateButton" value=""/>
    ça marche . comment faire pour que l' envoi soit déclenché par la fonction et non par un clic sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input class="forgot_send" type="submit" name="GenerateButton" value=""/>
    merci d 'avance.

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Je crois que ton enchainement devrait être celui-ci:

    1. Appel de ta fonction forgotpass_validate_email(), sans redirection
    2. Sur le server, envoi de l'email
    3. Toujours sur le server, génération d'un header "Location" pour router vers ta page de login


    A mon sens c'est au server d'effectuer cette tache de routage.

    ERE

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    Bonjour , merci.

    mais même quand je ne fais pas la redirection càd quand j' ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    /* vérification adresse mail 
     
     code 
    ...........
    ....
     
    */
     
     
    setTimeout(
    	                              function(){
    	           	                              document.forgotpassword.action=url_forpass;
    						      document.forgotpassword.target="_self";
    						      document.forgotpassword.submit(); 
     
    	           	                            },
    	                                          300
    	                            );
     
     
    }
    le formulaire n' est pas envoyé (car aucun mail n' est envoyé).

    Comment faire pour envoyer le formulaire via une fonction?

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par legide Voir le message
    mais même quand je ne fais pas la redirection càd quand j' ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ...	           	                              document.forgotpassword.action=url_forpass;
    ...
    le formulaire n' est pas envoyé (car aucun mail n' est envoyé).

    Comment faire pour envoyer le formulaire via une fonction?
    Que vaut "url_forpass" ? Pourquoi le mettre alors que tu as déjà une action sur le formulaire ? C'est peut-être ton souci. Et tu n'as pas besoin de passer par un setTimeout(...).

    ERE

Discussions similaires

  1. [AJAX] Envoi ou non d'un formulaire avec une fonction AJAX
    Par ohhh.gringo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/05/2007, 11h47
  2. Filtrer un formulaire via une checkbox ?
    Par HookerSeven dans le forum Access
    Réponses: 8
    Dernier message: 15/02/2006, 21h32
  3. Filtrer un formulaire via une liste déroulante
    Par pyxosledisciple dans le forum Access
    Réponses: 1
    Dernier message: 21/01/2006, 00h21
  4. Réponses: 7
    Dernier message: 20/03/2005, 14h53
  5. Recuperation de formulaire dans une fonction
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 23/06/2004, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo