Script pour imprimer au lieu d'envoyer

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateur : chinon37

brunopbrunop
Arias
Messages : 1
Inscription : 08 juil. 2006, 14:55

Script pour imprimer au lieu d'envoyer

Message 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)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message 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
Invité

Message 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)
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message 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 ?
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Invité

Message 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)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités