Avatar billede compac Seniormester
21. september 2008 - 13:41 Der er 8 kommentarer og
1 løsning

Printervenlig side

Jeg har en php-side som brugerne skal  kunne udskrive printervenligt. Det vil sige knapper, menuer osv. skal ikke med.
Indholdet, der skal udskrives kommer fra en database.

Jeg forestiller mig:

på første side:
en ikon <a href="print.php"><img="printer.gif"</a>

og herunder indholdet fra databasen, samt diverse menuer og knapper.

på side 2 (print.php)

<body onload="window.print();>
<?php

  udskriv databaseindhold (eller dele heraf bestemt fra side1).



$sql = select *****
  ----
  while løkke {

-------

}
?>

</body>

Mit ønske er at når siden er udskrevet returneres der automatisk til side 1.
Alternativt en mulighed for en knap med "returfunktion".
Avatar billede w13 Novice
21. september 2008 - 14:22 #1
Normalt gør man bare det, at man sætter media="screen" på sit CSS-dokument og laver et print-CSS-dokument, som skjuler de ting, der ikke skal med på print, og sætter media="print" på dét.

Men med din løsning kan du vel bare redirecte med noget JavaScript?

<script type="text/javascript">
window.location.href="anden-url.php";
</script>
Avatar billede wanze Nybegynder
21. september 2008 - 14:23 #2
Du kan gøre det hele i CSS blot ved at bruge to CSS-filer.

Hvis du fx kalder din normale CSS for screen.css, så kan du lave en ny CSS, der fx hedder print.css, hvorefter du indsætter følgende i <head> i dit dokument:
  <link rel="stylesheet" type="text/css" media="print" href="print.css" />
  <link rel="stylesheet" type="text/css" media="screen" href="screen.css" />

Din print.css vil så blive brugt, når man forsøger at udskrive siden. I den kan du så fx definereat baggrundsfarven skal være hvid (body { background: #fff; }) og at din menu fx ikke skal vises (#menu { display: none; }), eller hvad du nu har lyst til.
Avatar billede compac Seniormester
21. september 2008 - 15:21 #3
Jeg prøver med css.

1. Når jeg har et printerikon på siden, hvilke parametre skal den have, for aktivere udprintningen?

2. Der er en enkelt knap der driller:
Det er en link: <a href="login/main.php"><img src="menu.jpg"></a>

Den forsvinder ikke. Jeg har sat den ind med <div id="menu">
<a href="login/main.php"><img src="menu.jpg"></a>
</div>

og i print.css:

#menu
{
  display: none;
}

-men den bliver alligevel udprintet.

Iøvrigt - udprintningen indeholder filnavnet og datoen nederst på siden. Hvordan undgår jeg at det bliver printet?
Avatar billede coderdk Praktikant
21. september 2008 - 15:24 #4
Har du flere id="menu" ?

Filnavn og dato kan du ikke omgå. Det skal brugerne selv fjerne hvis de ikke vil have det med. Alternativet er, at lave en PDF...
Avatar billede w13 Novice
21. september 2008 - 15:28 #5
Den skal ikke have nogle parametre. onclick="window.print()" skulle gøre tricket, hvis du har et stylesheet med media="print"
Avatar billede w13 Novice
21. september 2008 - 15:29 #6
Og som coderdk er inde på, må du ikke have flere ens id'er på en side.
Avatar billede compac Seniormester
21. september 2008 - 15:45 #7
Ja, nu printer den, når man trykker på knappen. Men desværre kommer knapperne med (Der er ikke to, der har det samme navn - jeg har omdøbt dem for en sikkerheds skyld)
NB! har husket at omdøbe i print.css også.
Avatar billede w13 Novice
21. september 2008 - 15:54 #8
Du kan bare bruge klasser i stedet for id'er (class="klassenavn"), så kan du sagtens have flere af den samme.

Hvis knapperne er med på print, så bliver de ikke skjult ordentligt i dit CSS-dokument.
Avatar billede compac Seniormester
22. september 2008 - 15:56 #9
Utrolig hvad en tuborg kan gøre
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester