Ik heb diverse tekst velden in een form staan, die na invullen onthouden moeten worden om door een andere pagina even worden uitgelezen om het af te drukken.
Nu weet ik niet of ik dat goed heb gedaan, aangezien die 2de pagina raar doet.
Ik had gelezen dat je dit moest doen met $session, dus heb ik dit gedaan.:
if (isset($_POST['submit'])){
$_SESSION['varname'] = $prodnr;
op mijn andere pagina roep ik die dan terug met
$prodnr = $_SESSION['varname'];
Nu is het zo vul ik mijn invul vakjes 1 en klik op submit zodat hij mijn andere pagina afdrukt met de ingevulde gegevens laat hij niets zien.
Sluit ik die pagina en klik ik weer op afdrukken , dan komt pas de waarden van mij erin.
Hij loopt zeg maar, altijd steeds achter, ik hoop dat ik dit een beetje goed uitleg voor jullie.
Het zal wel een zooitje voor jullie zijn wat ik hier type maar ik probeer het uiteraard te snappen en te leren, eerst op mezelf (met hulp van google) en door jullie.
@- Ariën - :
session_start ();
heb ik inderdaad op beide pagina's staan.
en die $_post heb ik boven aan mijn pagina staan.:
<?php
if (empty($_POST["prodnr"])) {
$nameErr = "";
} else {
$prodnr = test_input($_POST["prodnr"]);
// check if name only contains letters and whitespace
// if (!preg_match("/^[a-zA-Z ]*$/",$prodnr)) {
// $nameErr = "Only letters and white space allowed";
// }
}
?>
Zo ben ik het met zoeken via google tegen gekomen namelijk , maar of dat goed is is natuurlijk de vraag.
Ik zou haast zeggen , als ik iets invul en in geheugen zet, dat hij dat in een andere pagina direct ophaalt en niet pas bij de 2de keer.
Ik hoop dat dit niet alles is, maar ik heb hier ook niet genoeg aan om er wat zinnigs van te kunnen zeggen ... (waar komt die $prodnr bijvoorbeeld vandaan?)
Wat is er overigens op tegen om
$_SESSION['prodnr'] = $prodnr;
te doen? door al die varname's zie je de variabelen niet meer, en voor je het weet schiet je de verkeerde waarde in de verkeerde variabale ...
Hier komt ie niet uit. Hier echo je 'm weer terug in de HTML, zodat ie in het input veld komt te staan (de waarde). Ik bedoel meer: waar wordt ie bepaald. Ergens moet iets staan van:
$prodnr = ...
(en dan ben ik dus benieuwd wat er op de puntjes staat; en waar dat staat tov bovenstaande lappen code).
Wat je wilt is, denk ik, de invulvakjes van het formulier onthouden.
Die invulvakjes worden de $_POST['name_van_het_vakje'], bijvoorbeeld $_POST['artikelnr'].
Om alle invulvakjes (input text) gemakkelijk in sessievariabelen te onthouden zou ik
foreach ($_POST as $key => $val)
$_SESSION[$key] = $val;
gebruiken. Je kunt ze daarna in alle andere pagina's gebruiken als bijvoorbeeld
print $_SESSION['artikelnr']
Voor radiobuttons en checkboxes wordt het iets ingewikkelder.
Je kunt de tekstvelden ook allemaal in een array zetten.
foreach ($_POST as $key => $val)
$aP[$key]=$val;
$_SESSION['tekstvelden] = $aP;
# andere pagina..
$aT=$_SESSION['tekstvelden];
print $aT['artikelnr'];
Ik heb een mooie rustige layout en alles netjes ingedeeld op de pagina, maar als ik naar jullie kijk , voel ik mij een prutser en geen idee meer hoe verder te gaan :'(
moet dan in mijn geval zo dan?
if (isset($_POST['submit'])){
foreach ($_POST as $key => $val)
$_SESSION[$key] = $val;
Nee, je hebt nu bijv. in $_SESSION['tekstveld'] de waarde van $_POST['tekstveld'] staan.
Die code van Paultje is enkel wat je nodig hebt, als je alles in de sessie op wilt slaan.
Het doorloopt je hele $_POST array, en plaatst de key's en waardes in een $_SESSION-global als array.
Ik hoop dat je niet echt onduidelijke namen als varname31, varname32, varname33 gaat gebruiken. Want weet je straks nog wat voor inhoud er in welke variabele zit? Houd je daarom vast aan duidelijke naamgeving.