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 :

reload après envoi formulaire vers pdf


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut reload après envoi formulaire vers pdf
    Bonjour à tous,

    j'essaye de faire une chose simple mais qui ne fonctionne pas chez moi.

    J'ai un formulaire assez basique dont la page de destination est une page php qui génère un PDF.
    Ce qui fait que lorsque j'envoie mon formulaire je reste sur la même page et un PDF s'ouvre.

    Pour des raisons techniques j'ai besoin d'actualiser la page du formulaire (ou au pire afficher une autre page).

    Or lors de la validation de mon formulaire (je vérifie certaines choses avec une fonction dans le "onsubmit") je n'arrive pas à recharger la page.

    Voici le code ce sera plus parlant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="_export/bdc.php" id="formImpression" method="post" onsubmit="validImpressionCommande();return false;">
    ...
    </form>
    Puis la fonction js
    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
    function validImpressionCommande()
    {
    	var	erreur	=	'';
     
    	....
     
    	if(erreur != '')
    	{
    		alert("Vous devez indiquer :\n\n"+erreur);
    		return false;
    	}
    	else
    	{
    		document.getElementById('formImpression').submit();
    		location.reload();
    	}
    }
    et pour le coup "location.reload();" ne fonctionne pas
    j'ai l'impression qu'il agit sur la page php qui génère le pdf et non sur la page précédente !
    le soucis c'est que si je fais le reload avant l'envoi du formulaire je n'aurai plus rien à envoyer, le formulaire sera vide.

    Si vous avez une idée pour contrer mon soucis je suis preneur.

    Merci d'avance

    _____________

    Edit :
    j'ai réussi à contourner le problème en cachant le formulaire dans un div lors du submit.
    j'ai affiché un autre div à la place.
    Ca ne résout pas mon problème mais ça fera l'affaire !
    Je laisse le sujet en "non résolu" au cas où ...

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Ce qui me surprends dans ton code c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="validImpressionCommande();return false;"
    En gros, cela signifie que dans tous les cas, onsubmit reçoit false, ce
    qui veut dire: "Ne pas envoyer le formulaire".

    Tu devrais avoir qqch dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return validImpressionCommande();"
    Et faire un return true; dans validImpressionCommande quand tu veux laisser
    partir le formulaire, et return false quand tu ne veux pas le laisser partir.

    Appeler document.getElementById('formImpression').submit(); dans la fonction
    validImpressionCommande c'est provoquer à nouveau un évènement submit qui va appeler récursivement validImpressionCommande.
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Non Marc, l'événement submit n'est pas déclenché lorsque le submit se fait par script
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Effectivement Didier, merci, ce code prouve ce que tu dis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    window.onload = function() {
    	var frm = document.getElementById('formulaire');
    	frm.onsubmit = function() {
    		alert('on submit');
    	};
     
    	var bt = document.getElementById('bt');
    	bt.onclick = function() {
    		frm.submit();
    	};
    };
    Avec le HTML suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <span id='bt'>Envoyer</span>
    <form id='test'>
    	<input type='submit' />
    </form>
    Mais je me suis fait avoir par mon utilisation excessive de JQuery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $(function() {
    	$('#test').submit(function() {
    		alert('ok');
    	});
     
    	$('#bt').click(function() {
    		$('#test').submit();
    	});
    });
    Ici Jquery appelle le submit :-/
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, effectivement, c'est un des "pièges" de jQuery
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi formulaire vers deux fichiers
    Par G-nome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/09/2009, 09h09
  2. Envoi formulaire vers deux pages
    Par midosd dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2009, 12h01
  3. Réponses: 1
    Dernier message: 13/08/2008, 15h14
  4. Réponses: 1
    Dernier message: 26/09/2007, 00h08
  5. après envois formulaire execute procedure
    Par alexmorel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/12/2005, 22h54

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