Hallo allemaal,

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.

Gebruik ik nu iets fout waardoor dit gebeurd?
Waarom gebruik je geen

$_SESSION['varname'] = $_POST['varname'];

in de verwerking van je formulier?

Vergeet ook niet om dit altijd boven te zetten, anders laden je sessies niet:

session_start();

Kun je de code van beide pagina's eens posten (in ieder geval de belangrijkste stukken)?
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.

@Rob Doemaarwat:

Dit is wat in mijn submit stukje staat.:

<?php
 //hier worden de variabelen van het briefje gegenereerd!!!
if (isset($_POST['submit'])){

    $_SESSION['varname'] = $prodnr;
    $_SESSION['varname2'] = $tijd;
    $_SESSION['varname4'] = $datum;
    $_SESSION['varname5'] = $agglosilo;
    $_SESSION['varname6'] = $flakeasilo;
    $_SESSION['varname7'] = $flakebsilo;
    $_SESSION['varname8'] = $peroxide;
    $_SESSION['varname9'] = $rec;
    $_SESSION['varname10'] = $test1;
    $_SESSION['varname11'] = $prod;
    $_SESSION['varname12'] = $batchnr;
    $_SESSION['varname13'] = $operator;
    $_SESSION['varname14'] = $fpsilo;
    $_SESSION['varname15'] = $flakea;
    $_SESSION['varname16'] = $flakeb;
    $_SESSION['varname17'] = $mvr;
    $_SESSION['varname18'] = $agglo;
    $_SESSION['varname19'] = $recycle;
    $_SESSION['varname20'] = $mvrstd;
    $_SESSION['varname21'] = $mfr;
    $_SESSION['varname22'] = $ash;
    $_SESSION['varname23'] = $order;
    $_SESSION['varname24'] = $kleurl;
    $_SESSION['varname25'] = $kleura;
    $_SESSION['varname26'] = $kleurb;
    $_SESSION['varname27'] = $vocht1;
    $_SESSION['varname28'] = $batchnrf1;
    $_SESSION['varname29'] = $plijn1;
    $_SESSION['varname30'] = $flakesoorta;
    $_SESSION['varname31'] = $vochtfa;
    $_SESSION['varname32'] = $kleurlf1;
    $_SESSION['varname33'] = $kleuraf1;
    $_SESSION['varname34'] = $kleurbf1;
    $_SESSION['varname35'] = $opmerkingf1;
    $_SESSION['varname36'] = $batchnrf2;
    $_SESSION['varname37'] = $plijn2;
    $_SESSION['varname38'] = $flakesoortb;
    $_SESSION['varname39'] = $vochtfb;
    $_SESSION['varname40'] = $kleurlf2;
    $_SESSION['varname41'] = $kleuraf2;
    $_SESSION['varname42'] = $kleurbf2;
    $_SESSION['varname43'] = $opmerkingf2;

//einde genereren van briefjes
 ?>

en in mijn testpagina roep ik die weer terug om van daaruit een echo te tonen.:

<?php
//hier worden de variabelen van het briefje gegenereerd!!!
  $prodnr = $_SESSION['varname'];
  $tijd   =$_SESSION['varname2'];
  $datum   = $_SESSION['varname4'];
 $agglosilo  = $_SESSION['varname5'];
 $flakeasilo  =$_SESSION['varname6'];
 $flakebsilo = $_SESSION['varname7'];
 $peroxide = $_SESSION['varname8'];
 $rec  = $_SESSION['varname9'];
 $test1 = $_SESSION['varname10'];
  $prod   =$_SESSION['varname11'];
  $batchnr   = $_SESSION['varname12'];
 $operator  = $_SESSION['varname13'];
 $fpsilo  =$_SESSION['varname14'];
 $flakea = $_SESSION['varname15'];
 $flakeb = $_SESSION['varname16'];
 $mvr  = $_SESSION['varname17'];
 $agglo = $_SESSION['varname18'];
   $recycle   =$_SESSION['varname19'];
  $mvrstd   = $_SESSION['varname20'];
 $mfr  = $_SESSION['varname21'];
 $ash  =$_SESSION['varname22'];
 $order = $_SESSION['varname23'];
 $kleurl = $_SESSION['varname24'];
 $kleura  = $_SESSION['varname25'];
 $kleurb = $_SESSION['varname26'];
    $vocht1   =$_SESSION['varname27'];
  $batchnrf1   = $_SESSION['varname28'];
 $plijn1  = $_SESSION['varname29'];
 $flakesoorta  =$_SESSION['varname30'];
 $vochtfa = $_SESSION['varname31'];
 $kleurlf1 = $_SESSION['varname32'];
 $kleuraf1  = $_SESSION['varname33'];
 $kleurbf1 = $_SESSION['varname34'];
  $opmerkingf1 = $_SESSION['varname35'];
    $batchnrf2   =$_SESSION['varname36'];
  $plijn2   = $_SESSION['varname37'];
 $flakesoortb  = $_SESSION['varname38'];
 $vochtfb  =$_SESSION['varname39'];
 $kleurlf2 = $_SESSION['varname40'];
 $kleuraf2 = $_SESSION['varname41'];
 $kleurbf2  = $_SESSION['varname42'];
 $opmerkingf2 = $_SESSION['varname43'];
?>
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 ...
$prodnr komt hier uit.:

<td><input type="text" name="prodnr"  STYLE="width: 10em" value="<?php echo $prodnr;?>"><span class="error">* <?php echo $nameErr;?></span></td>  



Hoe zou jij dat dan doen?
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).
$prodnr = test_input($_POST["prodnr"]);

Boven in het script staat hij.
Pascal,

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'];




@paultje.
Je vermeld deze code.:


foreach ($_POST as $key => $val)
  $_SESSION[$key] = $val;


als ik meerdere waarde terug wil halen moet het dan zoiets worden?

foreach ($_POST as $key => $val)
  $_SESSION[$key] = $val;
$_SESSION[$key] = $val2;

enz?

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.

Reageren