login  Naam:   Wachtwoord: 
Registreer je!
 Forum

array reset

Offline Ultimatum - 07/10/2006 17:55
Avatar van UltimatumPHP expert Ik wil graag dat als iemand iets vergeet in te vullen die value wel blijft bestaan dus heb ik het in een array gezet, maar ik wil ook dat het formulier 'verdwijnt' dus heb ik gezet $form = true en boven het formulier if(!isset($form)) en dan als er op een knop is gedrukt

  1. <?php
  2. $post = array(
  3. 'naam' => htmlentities($_POST['naam']),
  4. 'email' => htmlentities($_POST['email']),
  5. 'bericht' => htmlentities($_POST['bericht'])
  6. );
  7. ?>


maar als er dan wat ontbreekt en je drukt weer op ga terug is de array weer leeg. Ik had namelijk $form = true weggehaald en dan komen de foutmeldingen boven het formulier en toen ik dat deed bleef mijn value wel bestaan. Ik wil niet met sessies werken want daar gebruik ik er al genoeg van op het moment.

15 antwoorden

Gesponsorde links
Offline Rik - 07/10/2006 19:00
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als bij mij een formulier niet helemaal is ingevuld zet ik de dingen die zijn wel zijn ingevuld zo terug:
  1. <input type="text" name="naam" value="<?php echo isset($_POST['naam']) ? $_POST['naam'] : ''; ?>" />
Offline Ultimatum - 07/10/2006 21:40
Avatar van Ultimatum PHP expert Dat helpt ook niet, dan is mijn formulier weer leeg, ik weet dat het komt omdat ik $form = true en if(!isset($form)) gebruik e.d. maar dat stuk heb ik nodig...
Offline Abbas - 07/10/2006 22:14 (laatste wijziging 07/10/2006 22:15)
Avatar van Abbas Gouden medaille

Crew .NET
Dit zet je waar het nodig is in je php script:

  1. <?
  2.  
  3. function bestaat($key) {
  4. if(isset($_POST[$key])) {
  5. echo $_POST[$key];
  6. }
  7. }


En tussen de quotes van de value van een invoervak zet je dit (ook de php-tags):

  1. <?php bestaat("naam"); ?> // naam moet ook de 'name' van je tekstvak zijn dan
Offline Ultimatum - 07/10/2006 22:34
Avatar van Ultimatum PHP expert Nee, die functie werkt ook niet  
Offline Abbas - 07/10/2006 22:51
Avatar van Abbas Gouden medaille

Crew .NET
raar want bij mij werkt deze functie wel  
Offline Ultimatum - 07/10/2006 23:20
Avatar van Ultimatum PHP expert Kijk maar eens hoe ik dat met die $form = true heb gedaan, want daar ligt het aan. Misschien dat iemand dmv mijn code wel een fout/oplossing vind

http://www.plaatscode.be/2824/
Offline Dani - 08/10/2006 02:38
Avatar van Dani PHP gevorderde Gebruik maken van sessies is de oplossing hier denk ik.

Als het enkel gaat om controle van gegevens. bv u hebt 'vergeten ... in te vullen' kan je mischien best een eerst een javascript ontwerpen die de form velden checkt en enkel een submit doet als alles in orde is.
Offline Dark_Paul - 08/10/2006 10:21
Avatar van Dark_Paul PHP ver gevorderde Javascript zet je uit -> weg controle.
Je zal 't toch met PHP moeten doen als je dat wilt voorkomen.
Offline Ultimatum - 08/10/2006 21:28
Avatar van Ultimatum PHP expert Ik wil dus geen gebruik maken van sessies en ook niet van javascript

is er dan een mogelijkheid?
Offline Dani - 09/10/2006 00:04
Avatar van Dani PHP gevorderde Ja, indien de gevens niet juist zijn moet je het formulier direct nog eens includen en de POST gegevens erin verwerken en vermeld gewoon ergens in een kleurtje wat er mis was.
Offline Ultimatum - 09/10/2006 11:30
Avatar van Ultimatum PHP expert Dat zeg ik toch boven dat de $_POST ook weer gereset worden om een of andere vage reden 
Offline Dani - 09/10/2006 18:43
Avatar van Dani PHP gevorderde Je moet het oplossen zonder een "ga terug" of herlaad of wat dan ook. Direct in dezelfde pagina (dus geen volgende, geen vorige, geen andere) het formulier opnieuw includen.
Offline Ultimatum - 09/10/2006 20:56
Avatar van Ultimatum PHP expert Maar dat wil ik dus niet
Offline Dani - 09/10/2006 23:25
Avatar van Dani PHP gevorderde Dan hebben we alle oplossingen gehad en is je probleem blijvend.
Offline Thomas - 10/10/2006 12:45
Avatar van Thomas Moderator Als je niet wilt dat iemand meteen weer op een pagina met een half ingevuld formulier uitkomt (waarin je eerder ingevoerde waarden terug kunt plakken), dan zul je de ingevulde informatie "over meerdere pagina's" moeten onthouden.

HTTP is een "stateless" protocol. Dit houdt in dat HTTP (in principe) niet bijhoudt waar je vandaan komt, waar je naartoe gaat en welke informatie je ergens invult.
Als je dus "informatie over meerdere pagina's" wilt onthouden, ben je op andere instrumenten (sessie / cookie / ...) aangewezen.

Als je hier niet aan wilt wordt het vrij lastig danwel onmogelijk.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s