Ingevulde waarde onthouden in php en doorgeven naar andere pagina.
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?
in de verwerking van je formulier?
Vergeet ook niet om dit altijd boven te zetten, anders laden je sessies niet:
Kun je de code van beide pagina's eens posten (in ieder geval de belangrijkste stukken)?
@- Ariën - :
session_start ();
heb ik inderdaad op beide pagina's staan.
en die $_post heb ik boven aan mijn pagina staan.:
Code (php)
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.:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?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'];
?>
//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'];
?>
Gewijzigd op 14/08/2018 22:42:36 door - Ariën -
Wat is er overigens op tegen om
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 ...
(en dan ben ik dus benieuwd wat er op de puntjes staat; en waar dat staat tov bovenstaande lappen code).
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:Boven in het script staat hij.
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
gebruiken. Je kunt ze daarna in alle andere pagina's gebruiken als bijvoorbeeld
Voor radiobuttons en checkboxes wordt het iets ingewikkelder.
Je kunt de tekstvelden ook allemaal in een array zetten.
Je vermeld deze code.:
als ik meerdere waarde terug wil halen moet het dan zoiets worden?
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?
Code (php)
1
2
3
2
3
if (isset($_POST['submit'])){
foreach ($_POST as $key => $val)
$_SESSION[$key] = $val;
foreach ($_POST as $key => $val)
$_SESSION[$key] = $val;
Gewijzigd op 15/08/2018 19:21:31 door Pascal Schuffelers
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.
Gewijzigd op 15/08/2018 19:21:50 door - Ariën -
Ik zal de boel dezelfde naam geven zodat het duidelijker word.
post/redirect/get patroon genoemd.
En dan zijn er nog allerlei randgevalletjes waar waarden mogelijk niet bestaan zoals @Paul al aangaf, niet aangevinkte checkboxen (en radiobuttons? weet ik niet zeker eigenlijk maar klinkt logisch) komen na formulierverzending in het geheel niet voor in $_POST!
Om het overzicht te bewaren is het mogelijk een idee om het een en ander op te delen in verschillende acties (of zelfs aparte bestanden), bijvoorbeeld:
- een apart(e actie/) bestand voor het formulier
- een apart(e actie/) bestand voor de validatie en verwerking
op grond van het resultaat van de validatie kun je een gebruiker terugsturen naar het formulier met foutmeldingen, of het formulier verwerking in de vorm van een mailtje, entry in de database et cetera, waarna je wordt doorgestuurd naar een bedankpagina ofzo.
Elk bestand waarin je sessies wenst te gebruiken dien je te starten/te voorzien van session_start(). Vervolgens kan het ook geen kwaad om eens een en ander stap voor stap te debuggen, zodat je goed kunt volgen wat er zoals in $_SESSION en $_POST zit. Ik denk dat als je alles stap voor stap aanpakt, en je je op elk moment (uitsluitend) op de volgende stap richt, je uiteindelijk makkelijk bij je eindbestemming en -resultaat kunt geraken. Mocht je daar vragen over hebben, daar is dit forum voor.
Maar allereerst, een kleine organisatie van de deelproblemen en het opdelen in stukken kan denk ik al veel bijdragen aan het overzicht. We kunnen dan ook veel beter inzoomen op de deelproblemen en het oplossen daarvan.
$_POST bevat alleen informatie als je een POST request naar de server stuurt, dus wanneer je een formulier submit. Daarna (elke daaropvolgende request) is $_POST weer leeg. Dat is ook -mede- de reden dat het verwerken van de formulier-submit in een aparte stap wordt opgenomen, waarna je direct weer wordt doorgestuurd. Dit wordt ook wel het En dan zijn er nog allerlei randgevalletjes waar waarden mogelijk niet bestaan zoals @Paul al aangaf, niet aangevinkte checkboxen (en radiobuttons? weet ik niet zeker eigenlijk maar klinkt logisch) komen na formulierverzending in het geheel niet voor in $_POST!
Om het overzicht te bewaren is het mogelijk een idee om het een en ander op te delen in verschillende acties (of zelfs aparte bestanden), bijvoorbeeld:
- een apart(e actie/) bestand voor het formulier
- een apart(e actie/) bestand voor de validatie en verwerking
op grond van het resultaat van de validatie kun je een gebruiker terugsturen naar het formulier met foutmeldingen, of het formulier verwerking in de vorm van een mailtje, entry in de database et cetera, waarna je wordt doorgestuurd naar een bedankpagina ofzo.
Elk bestand waarin je sessies wenst te gebruiken dien je te starten/te voorzien van session_start(). Vervolgens kan het ook geen kwaad om eens een en ander stap voor stap te debuggen, zodat je goed kunt volgen wat er zoals in $_SESSION en $_POST zit. Ik denk dat als je alles stap voor stap aanpakt, en je je op elk moment (uitsluitend) op de volgende stap richt, je uiteindelijk makkelijk bij je eindbestemming en -resultaat kunt geraken. Mocht je daar vragen over hebben, daar is dit forum voor.
Maar allereerst, een kleine organisatie van de deelproblemen en het opdelen in stukken kan denk ik al veel bijdragen aan het overzicht. We kunnen dan ook veel beter inzoomen op de deelproblemen en het oplossen daarvan.
Gewijzigd op 15/08/2018 19:25:42 door Thomas van den Heuvel
Ik heb dit dus in mijn tabel.:
Code (php)
in mijn submit heb ik dan (namen aangepast).:
Code (php)
1
2
3
4
5
2
3
4
5
if (isset($_POST['submit'])){
$_SESSION['prodnr'] = $prodnr;
$_SESSION['tijd'] = $tijd;
$_SESSION['datum'] = $datum;
$_SESSION['prod'] = $prod;
$_SESSION['prodnr'] = $prodnr;
$_SESSION['tijd'] = $tijd;
$_SESSION['datum'] = $datum;
$_SESSION['prod'] = $prod;
In diezelfde pagina heb ik boven aanstaan.:
Wat moet nu dan want ik kom even nu niet uit al jullie goede bedoelingen.
BTW voor ik het vergeet.
Op het laatste van de pagina heb ik staan.:
Om een extra button klik te krijgen naar de pagina waar dus alles ingevuld zou moeten worden om dan af te drukken.
Gewijzigd op 15/08/2018 19:55:31 door Pascal Schuffelers
je kan die $_SESSION['woonplaats'] gewoon in je formulier aanroepen. Controleer wel netjes met isset() of deze bestaat.
Dus die sessions wat ik heb weghalen en dat van @Paultje overnem?
Code (php)
1
2
3
2
3
if (isset($_POST['submit'])){
foreach ($_POST as $key => $val)
$_SESSION[$key] = $val;
foreach ($_POST as $key => $val)
$_SESSION[$key] = $val;
of moet ik daar nog iets in aanpassen?
Ondertussen heb ik wel een workaround gevonden en die doet wat ik wil, maar niet wat ik van jullie wil leren uiteraard.
Door die 2de pagina in het begin met.:
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
Eenmaal te laten refreshen krijg ik wel alles goed te zien.
Maar nogmaals ik wil snappen wat jullie mij willen leren.
Gewijzigd op 15/08/2018 20:12:08 door Pascal Schuffelers
Sessions worden dan automatisch gemaakt.
Wat je wilt is alle $_POST variabelen van het formulier in de $_SESSION bewaren.
Met de foreachloop wordt voor elke $_POST variabele een gelijknamige sessievar aangemaakt met de doorgegeven waarde. Bestaat die sessievar al, dan wordt hij gewoon 'overschreven'.
Je hebt dan in één keer 'alles' bewaard en kan de sessievars verder overal opreoepen en gebruiken.
Dus:
Oke @Paultje , dit lijk ik wel te snappen, zal het eens testen en laat het daarna weten of het mij gelukt is.
Ik vind 'm wel een beetje "eng". Stel dat je in je sessie ook opslaat of iemand wel/niet ingelogd is, of wat z'n rechten zijn. Met deze constructie kun je die als "gebruiker" gewoon overschrijven (even via de browser een input veldje aan het formulier toevoegen met de juiste waarde).
Alleen die refresh op die 2de pagina heb ik toch nog nodig anders loopt hij achter.
Zou kunnen zijn omdat ik de form op de eerste pagina begin met.:
Code (php)
1
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" onsubmit="return checkForm(this);">
als ik namelijk iets anders zou gebruiken verdwijnt mijn 1ste pagina en die moet wel blijven staan.