Page 1 sur 1

impression de page

Posté : 02 juin 2005, 11:32
par renatane
Bonjour,

J'ai une page dans mon appli, qui affiche des données de ma base.

Sur cette page, il y a un lien en haut pour le retour a l'index, ensuite il y a les données, puis en bas, il y a un bouton "impimer".

Quand je clique sur le bouton, toute la page s'imprime, y compris le lien et le bouton.

Comment puis-je faire pour n'afficher que les données?


voici le code de mon bouton:
echo "<br><br><input type='button' value='Imprimer cette page' onclick='window.print()'>";

Posté : 02 juin 2005, 12:19
par Cyrano
Voir tuto ICI

Posté : 03 juin 2005, 15:59
par PhilFree
Merci Cyrano pour le tuto, il est vraiment bien fait.

Mais je n'ai rien trouvé concernant la "non impression" des boutons.

J'ai essayé en vain:

@media print {
button : none
}

Mais ça ne fonctionne pas.

As-tu une idée ?

Posté : 03 juin 2005, 16:15
par Cyrano
display: none
Tu peux utiliser une classe:
<input type="button" class="ecran" ...
et dans ta feuille d'impression:

Code : Tout sélectionner

@media print{ .ecran display: none; }

Posté : 03 juin 2005, 16:39
par PhilFree
Je ne dois pas être en forme aujourd'hui !

j'ai essayé:

Code : Tout sélectionner

@media print { button {display: none; } }
entre autres choses, mais rien n'y fait, ces fichus boutons s'impriment toujours.

Posté : 03 juin 2005, 18:02
par Cyrano
C'est sur que tu dois pas avoir la forme olympique: tu as bien lu le petit bout de code que j'ai mis ??? button n'est ni une balise HTML ni indiqué comme une classe ou un identifiant dans ton code.

Posté : 03 juin 2005, 19:27
par PhilFree
J'ai aussi essayé avec une classe, le code que tu as donné.

Aucun résultat, les boutons s'impriment encore et toujours.

sur la page HTML j'ai mis:

<input type="button" class="ecran" ...
avant /HEAD j'ai mis:

Code : Tout sélectionner

@media print{ .ecran display: none; }
sans succès

je me demande si la syntaxe:

Code : Tout sélectionner

.ecran display: none;
est correcte.

Mais j'ai aussi essayé:

Code : Tout sélectionner

ecran.display: none;
sans plus de succès...

Mystère :?:

Posté : 03 juin 2005, 19:33
par Cyrano
Pour être sûr, je viens de faire un test avec ça :
<style>
@media print{
	.ecran {display: none;}
}
</style>
mis dans l'en-tête de ma page avant le </head>
Résultat, mon bouton avec class="ecran" disparait à l'impression.

Posté : 03 juin 2005, 20:29
par PhilFree
Merci Cyrano,

Maintenant ça fonctionne parfaitement.
C'était bien une erreur de syntaxe.

Je n'avais pas:

Code : Tout sélectionner

.ecran {display: none;}
mais:

Code : Tout sélectionner

.ecran display: none;
Donc si je résume:

Pour éviter l'impression des boutons sur une page, il suffit:

1° Dans la ligne HTML de déclaration du ou des boutons, on crée la classe ecran:
<input type="button" class="ecran" ...
2° Entre les balises HEAD on crée une feuille de style:
<head>
.
.
.
<style>
@media print{
    .ecran {
         display: none;
    }
}
</style>
.
.
.
</head>
Merci Cyrano :!:

Posté : 03 juin 2005, 22:34
par Cyrano
voilà, maintenant, en phase suivante, tu peux envisager deux feuilles de styles externes. du coup dans ta page, tu utiliseras, au lieu d'une balise <style>, une balise <link> pour récupérer une feuille:
<link rel="stylesheet" type="text/css" media="screen" href="./styles/ecran.css" />
<link rel="stylesheet" type="text/css" media="print" href="./styles/impression.css" />
et dans tes feuilles de style, tu n'auras plus besoin de préciser le media qui est défini dans le link.