impression de page

Eléphant du PHP | 155 Messages

02 juin 2005, 11:32

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()'>";

Mammouth du PHP | 19672 Messages

02 juin 2005, 12:19

Voir tuto ICI
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

03 juin 2005, 15:59

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 ?

Mammouth du PHP | 19672 Messages

03 juin 2005, 16:15

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; }
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

03 juin 2005, 16:39

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.

Mammouth du PHP | 19672 Messages

03 juin 2005, 18:02

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

03 juin 2005, 19:27

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 :?:

Mammouth du PHP | 19672 Messages

03 juin 2005, 19:33

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

03 juin 2005, 20:29

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 :!:

Mammouth du PHP | 19672 Messages

03 juin 2005, 22:34

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: