anoniem Geplaatst: 16 april 2004 Delen Geplaatst: 16 april 2004 Hoi, vraagje: als ik met JSP een instantie maak van een klasse (bean), wordt deze opgenomen in de POST variabelen zodat ik deze in een andere pagina kan aanspreken (wel middels een scriptlet). Nu vraag ik me af of ik een instantie gemaakt met PHP ook naar een andere pagina mee kan sturen. Ik wil dit omdat ik een formulier heb wat ik in wil vullen wat uit meerdere stappen bestaat. Ik ben van plan om hier objecten van te maken, maar de informatie die ik uit vorige stappen van het formulier heb moet ik ook weer aan kunnen spreken via dit object. Ik wil het op deze manier doen om zo min mogelijk DB connecties te maken. voorbeeld: ik heb een klasse gemaakt voor een aanvrager die een aantal attributen heeft. Deze sla ik via een aantal set methoden op. Nu verzend ik mijn form en ga naar het volgende form (nieuwe pagina). Nu moet ik hetzelfde object cq. instantie aanspreken via get methoden om de attributen van de aanvrager op te halen. Worden deze waarden van de aanvrager die ik geset heb bewaard of zijn deze niet meer te benaderen? Het is geen optie om dit via de GET methode te doen omdat ik ongeveer 60 varianelen heb. Is dit mogelijk? en zo nee heeft iemand anders mss een slimme oplossing voor dit probleem? Quote Link naar reactie
anoniem Geplaatst: 16 april 2004 Auteur Delen Geplaatst: 16 april 2004 Je zou kunnen proberen om met sessions te werken, maar of je daar ook objecten in kunt opslaan zou ik je eerlijk gezegd niet kunnen vertellen... Kwestie van proberen. - Bas Quote Link naar reactie
anoniem Geplaatst: 16 april 2004 Auteur Delen Geplaatst: 16 april 2004 ja aan sessies had ik ook al gedacht maar is dat niet een beetje een slordige manier van proggen? Quote Link naar reactie
anoniem Geplaatst: 16 april 2004 Auteur Delen Geplaatst: 16 april 2004 iig tnx Bas, ik los het zo op door de stappen in 1 pagina te includen en dan met een switch statement alle vars op te slaan. Quote Link naar reactie
anoniem Geplaatst: 17 april 2004 Auteur Delen Geplaatst: 17 april 2004 Volgend probleem: ik heb het bovenstaande op proberen te lossen door op volgende manier: [code:1:31d4888cc9] global $stap1Adres, $stap1Postcode, $stap1Plaats, $stap1Eigenaar, $stap1Makelaar, $stap1TelMakelaar, $stap1Prijs, $stap1TelEigenaar, $stap1GSMEigenaar; $teller = 0; for ($i=0;$i<7;$i++) { //alle knoppen heten next + getal deze wordt hieronder dus samengesteld zodat ik die op kan vragen met $_POST $page = "next" . $i; if (isset($_POST[$page])) { switch($page) { case "next1": $errMsg = ""; //checken of de post vars niet empty zijn als deze dat wel zijn ken een waarde toe aan $errMsg, niet empty toekennen aan een global if (!empty($_POST['adres'])) { $GLOBALS['stap1Adres'] = $_POST['adres']; } else { $errMsg = "U heeft in stap 1 geen geldig adres opgegeven.<br>"; } if (empty($errMsg)) { $teller= 1; include('aanvraag2.php'); } else { $teller= 1; echo "<b>De volgende fouten zijn ontdekt:</b><br>"; echo errMsg . "<br>"; include('aanvraag1.php'); } break; [/code:1:31d4888cc9] Dit komt uit de file aanvraag.php en deze wordt geinclude in index.php. Nu zijn er ca. 8 stappen, en op het einde moet er een overzicht worden gegenereerd m.b.t. de ingevulde gegevens dat wordt ook geinclude. Maar als ik in dat overzicht (senddata.php) mijn globals aanroep zijn ze leeg! Als ik deze aanroep in de laatste if/else in de eerste case (dezelfde case dus) laat ie ze goed zien. Iemand enig idee hoe dit kan?? ik heb ook al geprobeerd om verderop buiten de switch een klasse te schrijven met een methode waarin de variabelen toegekend worden aan een global maar deze laat ie ook niet zien. Quote Link naar reactie
anoniem Geplaatst: 18 april 2004 Auteur Delen Geplaatst: 18 april 2004 [quote:7146fd4c65="B00TjE"]ja aan sessies had ik ook al gedacht maar is dat niet een beetje een slordige manier van proggen?[/quote:7146fd4c65]Waarom is dat slordig? Je wil de 'status' tussen twee HttpRequest behouden, dan lijkt mij sessions hier het middel voor. Je kan je object gewoon [url=http://nl2.php.net/serialize]serialize[/url]n en bij de niewe request [url=http://nl2.php.net/manual/nl/function.unserialize.php]unserialize[/url]n. Vergeet alleen niet om de class(-definitie) voor unserialize te plaatsten, anders werkt het niet. [quote:7146fd4c65="B00TjE"]Iemand enig idee hoe dit kan?? ik heb ook al geprobeerd om verderop buiten de switch een klasse te schrijven met een methode waarin de variabelen toegekend worden aan een global maar deze laat ie ook niet zien.[/quote:7146fd4c65]Is senddata.php een andere pagina, opgevraagd met een volgende Http-request? Ja? Dan is het logische dat de variabelen niet beschikbaar zijn (http is een stateless-protocol). Misschien dat dit wel in Java kan (door boven op de webserver een applicateserver te draaien, ofzo), maar Java != PHP. Nog een punt: globals = :evil:! -Rémy Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen