Régis Posté 12 Octobre 2005 Posté 12 Octobre 2005 (modifié) Bonjour, NéoPhytum en PHP... J'ai inséré dans mes pages un bouton "imprimer cette page" et créé un "print.css" qui supprime quelques éléments de ma page (il n' y a pas de page spéciale dédiée à l'impression). Avec le bouton, j'ai mis le javascript suivant : <script type="text/javascript"> function imprime() { if (typeof(window.print) != 'undefined') { window.print(); } }</script> et le lien suivant : <a href="#" title="Imprimer le CV" onclick="imprime(); return false"> Tout est OK et fonctionne. Ma question existe-til en PHP le même type d'appel ? Si oui, comment faire ? (j'essaie d'éviter le javascript...) Merci Modifié 12 Octobre 2005 par Dudu
NorSeb Posté 12 Octobre 2005 Posté 12 Octobre 2005 Salut, A priori ca n'est pas faisable puisque le PHP s'exécute sur le serveur et non sur le client (navigateur) comme le javascript. Or l'impression est fortement liée au client. A part de la mise en forme, je pense pas que tu puisse aller très loin.
Régis Posté 12 Octobre 2005 Auteur Posté 12 Octobre 2005 Salut,A priori ca n'est pas faisable puisque le PHP s'exécute sur le serveur et non sur le client (navigateur) comme le javascript. Or l'impression est fortement liée au client. A part de la mise en forme, je pense pas que tu puisse aller très loin. Merci "NorSeb", j'avais oublié le côté serveur (néophyte que je suis) ... il est probable que tu es raison.
Dudu Posté 12 Octobre 2005 Posté 12 Octobre 2005 (modifié) Dans ce genre de cas, il est préférable d'encapsuler l'appel au <a> dans du JS. Ainsi: - avec JS activé: on a le lien ET la fonction d'impression - sans JS activé: on n'a pas la fonction mais au moins on n'a pas un lien qui sert à rien (ex. type: "ah ben tiens ton truc il m'a rajouter un # à la fin de l'URL, c'est normal? ") Le document.createElement peut du coup te servir PS: et effectivement PHP n'a pas grand chose à voir. Quant à éviter le JS non il ne faut pas tout confondre. Javascript est très utile pour ce genre de choses non-indispensables. Par contre il faut l'éviter pour afficher le contenu informatif de sa page. Je déplace le sujet vers des lieux plus propices... (edit: et je retire le mot PHP du titre) Modifié 12 Octobre 2005 par Dudu
Régis Posté 12 Octobre 2005 Auteur Posté 12 Octobre 2005 Dans ce genre de cas, il est préférable d'encapsuler l'appel au <a> dans du JS.(...) Le document.createElement peut du coup te servir Merci Dudu, Je ne suis pas un pro du Javascript non plus J'ai bien trouvé de la doc sur "document.createElement" : http://fr.selfhtml.org/javascript/objets/document.htm J'ai essayé... mais rien à faire... je n' y arrive pas... (je me suis basé sur l'exemple du site cité plus haut) Peux-tu me donner quelques conseils ? Merci
Dudu Posté 13 Octobre 2005 Posté 13 Octobre 2005 Salut, Moi non plus je ne suis pas un pro du Javascript mais mes tests, librement basés sur l'exemple que tu donnes, ont été assez concluants Laisse ton code de script tel quel (le premier que tu as donné dans ton 1er message) Par contre, pour le lien vire-le, et l'image qui le précéde également (elle n'a rien à faire dans le code HTML, c'est de la présentation donc du CSS) Tu te retrouves donc avec un div tout vide <div align="center"></div> que tu vas légèrement modifier pour lui attribuer un id <div align="center" id="imprimer"></div> Et juste en dessous, tu mets çà <script type="text/javascript"><!-- var impression = document.createElement("a"); var texte_impression = document.createTextNode("Imprimer le CV"); impression.appendChild(texte_impression); impression.href = 'javascript:imprime()'; var imprimersortie = document.getElementById("imprimer"); imprimersortie.appendChild(impression);//--></script> Ensuite, dans ta feuille de style, tu rajoutes #imprimer a {background:transparent url(/webmaster/imprimer.gif) no-repeat; padding-left:20px;} c'est l'icône de l'imprimante que tu as virée de l'HTML et que l'on remet via du CSS
Régis Posté 13 Octobre 2005 Auteur Posté 13 Octobre 2005 Merci Dudu de ta réponse et de ton intérêt... Cela fonctionne impéccablement... et corresponds totalement à mon besoin. Merci encore
Nullette Posté 13 Octobre 2005 Posté 13 Octobre 2005 Bonjour, et quelle est la différence avec le code tout simple : <a href="#" onclick="window.print()">Imprimer</a> ?
Dudu Posté 14 Octobre 2005 Posté 14 Octobre 2005 Qu'il est affiché même si le JS est désactivé.. et dans ce cas-là il ne sert pas à grand chose
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant