anoniem Geplaatst: 4 januari 2003 Delen Geplaatst: 4 januari 2003 Ik heb een formulier gemaakt waarbij de invoer door een javascript gecontroleerd wordt. Het formulier bestaat uit 3 bladzijden, ook 3 formulieren dus. De variabelen worden met het javascript aan elkaar doorgestuurd. Op de 3e bladzijde worden alle gegevens verzameld en moet er een print functie komen. Het printen met print() is geen probleem alleen ik wil niet het formulier zoals het geprint wordt op het scherm laten zien. Maw. niet ineens een witte bladzijde met alle gegevens maar netjes een tabelletje met hierin de gegevens die geprint gaan worden. Het formulier probeer ik nu in een hidden frame door php te laten genereren. Daarn kan ik met print() dit frame uit laten printen. Het probleem is dat ik niet weet hoe ik de output van een php script in dit hidden frame kan krijgen. Quote Link naar reactie
anoniem Geplaatst: 4 januari 2003 Auteur Delen Geplaatst: 4 januari 2003 Je zorgt ervoor dat ieder formulier een .php- file is. De gegevens laat je verzenden via de methode post. Op de pagina van het volgende formulier plak je de waardes van het vorige formulier in het nieuwe formulier. Vb: na verzenden van het eerste formulier met "name" als variabele. In de tweede pagina wordt dit. [code:1:ed216482a4] <form name="..... blabla.....> <input type="hidden" name="name" value="<? print $name; ?>"> <verzendknop> </form> [/code:1:ed216482a4] Op die manier worden de gegevens ingevoerd in de eerste pagina doorgestuurd naar de derde pagina. Op de pagina van het volgende formulier doe je weer net hetzelfde totdat je op de pagina van het overzicht belandt. Hier is het gewoon een kwestie van je layout voor je gegevens klaarmaken. Maak een layout in html en plak op de overeenkomstige plaatsen je print-scriptje. vb: [code:1:ed216482a4] <table> <tr> <td>Name:</td> <td><? print $name; ?></td> </tr> <tr> <td>Email:</td> <td><? print $email; ?></td> </tr> </table> [/code:1:ed216482a4] En dus geen gedoe met een hidden frame :wink: Groeten Quote Link naar reactie
anoniem Geplaatst: 4 januari 2003 Auteur Delen Geplaatst: 4 januari 2003 Bedankt voor je uitleg. Het is alleen zo dat de gegevens wel netjes in een tabel op het scherm komen te staan na het invullen van het formulier. Dit is niet het probleem. Op het scherm kun je de gegevens controleren en eventueel teruggaan om te wijzigen. Op het scherm waar je de ingevulde gegevens kunt controleren moet nu een knop komen waarmee je het formulier kan printen. Niet het huidige scherm moet nu geprint worden omdat dit een andere layout heeft. Dus moet het te printen formulier in een hidden frame komen te staan of anders een extern bestand. Quote Link naar reactie
anoniem Geplaatst: 4 januari 2003 Auteur Delen Geplaatst: 4 januari 2003 Je kan ook een apart CSS-bestand maken speciaal voor printers. Op deze manier kan je dus gewoon de huidige pagina printen terwijl deze uitgeprint er anders uit zal zien... » [url=http://www.alistapart.com/stories/goingtoprint/]Meer info[/url]. - Bas. Quote Link naar reactie
anoniem Geplaatst: 4 januari 2003 Auteur Delen Geplaatst: 4 januari 2003 Bashamar oplossing is natuurlijk de mooiste maar helaas niet geheel crossbrowser compatible (dit is op te lossen met javascrpting maar dit is nodeloos complex). Als je volledig crossbrowser compatible wil zijn is jouw oplossing zo slecht nog niet. Posten naar een hidden frame is eenvoudig: [code:1:c767adea7c]<form target="hiddenFrameName" etc..></form>[/code:1:c767adea7c] Sucess, /E Quote Link naar reactie
anoniem Geplaatst: 4 januari 2003 Auteur Delen Geplaatst: 4 januari 2003 He dat is mooi. Ik wist niet dat form ook een target kon hebben, ik ga het uitproberen. Ik ben benieuwd wat er in de target komt te staan. De output van <form> ? Ik ga het uitproberen. Quote Link naar reactie
anoniem Geplaatst: 6 januari 2003 Auteur Delen Geplaatst: 6 januari 2003 Ik heb nu het formulier aangepast met een target. Het target is een hidden frame oftewel een frame die de afmeting 0 heeft. Als ik nu het formulier verzend gebeurt er inderdaad precies wat ik wil: De gegevens worden door een javascript op het scherm geplaatst, als 2e wordt er een print-formulier aangemaakt in het juiste frame. Om te testen heb ik het frame iets groter dan 0 gemaakt om te kunnen zien of er inderdaad iets in komt te staan, dat gebeurt inderdaad. Het volgende php-scriptje zet de tekst in het frame. <?php echo "<table width='400px' cellpadding='2' border='1' cellspacing='0'>"; echo "<tr><td>Zakelijk</td><td>tekst</td></tr></table>"; echo "<script>window.print();</script>"; ?> Alleen ik krijg het nog niet voor elkaar om dit frame uit te printen. Ik heb geprobeerd om dit frame de focus te geven maar elke keer wordt het frame geprint waarin het html-formulier staat. Het is de bedoeling dat het hidden frame na het vullen met tekst automatisch geprint gaat worden. Alvast bedankt weer Quote Link naar reactie
anoniem Geplaatst: 6 januari 2003 Auteur Delen Geplaatst: 6 januari 2003 werkt onderstaande niet gewoon? [code:1:2a182fcb1f] parent.frames['hiddenframe'].print(); [/code:1:2a182fcb1f] Quote Link naar reactie
anoniem Geplaatst: 6 januari 2003 Auteur Delen Geplaatst: 6 januari 2003 Annie, had ik ook al geprobeerd, er gebeurde niets. Met het volgende scriptje doet ie het wel!! Zou dat komen doordat ik nu ook de andere tags gebruik? <?php echo "<html><head></head><body onload='printen()'>"; echo "<table width='400px' cellpadding='2' border='1' cellspacing='0'>"; echo "<tr><td>Zakelijk</td><td>".$Zakelijke_aanvraag."</td></tr></table>"; echo "<script>function printen() {window.parent.leeg.focus();window.print();}</script></body></html>"; ?> Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen