Page 1 sur 1

Script pour imprimer au lieu d'envoyer

Publié : 09 juil. 2006, 10:08
par brunopbrunop
Bonjour,

J'ai récupéré un script (cf ci_dessous) qui répond à mon besoin à un détail prés. En effet je souhaiterais remplacer l'envoi du formulaire par son impression.
Pour cela j'ai supprimé la ligne :
et j'ai ajouter "window.print" à la ligne onSubmit ce qui donne :

Code : Tout sélectionner

onSubmit="return verif_formulaire(), window.print()"
J'y suis presque, simplement lorsque je clique sur "envoyer", il y a tout d'abord le contrôle du formulaire et ensuite l'ouverture de le boite d'impression de Windows. Malheureusement, le formulaire est remis à zero ce qui est génant, car il faut systematiquement ressaisir en cas d'erreur.
Peut être y a t'il une piste avec la commande action, mais je ne vois pas comment lancer la boite de dialogue d'impression de windows à partir d'un URL ?
Merci par avance pour votre aide.

Ci dessous le script en question :

Code : Tout sélectionner

<html>
<head>
<title>V&eacute;rifier les saisies de formulaire</title>
<script type="text/javascript">
<!--
function verif_formulaire()
{
 if(document.formulaire.nom.value == "")  {
   alert("Veuillez entrer votre nom!");
   document.formulaire.nom.focus();
   return false;
  }
 if(document.formulaire.lieu.value == "") {
   alert("Veuillez entrer votre lieu de résidence!");
   document.formulaire.lieu.focus();
   return false;
  }
 if(document.formulaire.courriel.value == "") {
   alert("Veuillez entrer votre adresse électronique!");
   document.formulaire.courriel.focus();
   return false;
  }
 if(document.formulaire.courriel.value.indexOf('@') == -1) {
   alert("Ce n'est pas une adresse électronique!");
   document.formulaire.courriel.focus();
   return false;
  }
 if(document.formulaire.age.value == "") {
   alert("Veuillez entrer votre âge!");
   document.formulaire.age.focus();
   return false;
  }
 var chkZ = 1;
 for(i=0;i<document.formulaire.age.value.length;++i)
   if(document.formulaire.age.value.charAt(i) < "0"
   || document.formulaire.age.value.charAt(i) > "9")
     chkZ = -1;
 if(chkZ == -1) {
   alert("Cette mention n'est pas un nombre!");
   document.formulaire.age.focus();
   return false;
  }
}
//-->
</script>
</head>
<body bgcolor="#EEEEEE" text="#000000">

<h1>formulaire</h1>

<form name="formulaire" action="http://actuel.fr.selfhtml.org/cgi-bin/formview.pl" method="post" onSubmit="return verif_formulaire()">
<pre>
Nom:     <input type="text" size="40" name="nom">
Résidence:  <input type="text" size="40" name="lieu">
Courriel:   <input type="text" size="40" name="courriel">
Âge:    <input type="text" size="40" name="age">
formulaire: <input type="submit" value="Envoyer"><input type="reset" value="Interrompre">

Pour envoyer vous devez être connecté à Internet!
</pre>
</form>

</body>
</html>
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705)

Publié : 09 juil. 2006, 10:34
par calimo
Un

Code : Tout sélectionner

return verif_formulaire() && window.print()
ne fonctionne pas ?

Attention quand-même : certains utilisateurs ont le javascript désactivé. Tu devrais tout de même mettre en place une validation côté serveur et renvoyer une page imprimable et demandant à l'utilisateur de l'imprimer :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firemarsupilami Firefox/1.5.0.4

Publié : 09 juil. 2006, 12:48
par Invité
Merci pour la réponse mais la boite de dialogue d'impression n'apparait toujours pas. Je pense pourtant que je brule. Je me permets de te donner l'adresse de ma page au cas ou j'aurais raté quelque chose.
http://perso.orange.fr/cultureinfo/essai1.html
Encore merci,


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705)

Publié : 09 juil. 2006, 13:30
par Do-IT
Pourquoi tu ne mets pas windows print à la fin du verif formulaire, comme ça c'est seulement activé si la verif est ok. Et accessoirement ça résoudra peut-être ton problème ?

Publié : 09 juil. 2006, 14:42
par Invité
Lorsque je mets window.print à la fin de "function verif_formulaire()" la boîte de dialogue s'ouvre lors du lancement de la page et aussi lorsqu'il n'y a plus d'erreurs (ce qui est le but recheché), mais le fomulaire s'imprime sans les données.

Je viens d'essayer de mettre window.print() dans le onSumit (cf ci-dessous), mais la boite de dialogue s'ouvre même lorsqu'il y a des erreurs.

onsubmit="return verif_formulaire(window.print())"

J'attends donc vos bons conseils pour résoudre ce petit problème qui me débloquera dans l'avancée de mon site.
Encore merci,

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705)