Ga naar inhoud

php output niet op scherm maar in een hidden frame plaatsen


Aanbevolen berichten

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.
Link naar reactie
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
Link naar reactie
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.
Link naar reactie
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
Link naar reactie
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
Link naar reactie
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>"; ?>
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...