[PHP]Form, variabelen weg, na refresh.

Pagina: 1
Acties:
  • 148 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een form gemaakt, en dat werkt allemaal prima. Totdat men een ongeldige input invuld in een van de velden, dan zegt het validatie script:
Hey dude, deze waarde is niet goed bro.
Daar onder verschijnt dan een Go Back button. (gewoon een href naar het originele form).
Dit form is dan leeg en moet weer helemaal opnieuw ingevuld worden. En dat wil ik niet :(

Ik heb geprobeerd om een tweede form te maken die de values zou moeten weergeven die ingegeven zijn in het eerste form.
Het lijkt er echter op dat mijn variabelen ergens verdwijnen.
Hoe krijg ik het nou voor elkaar om alle ingevoerde waardes in het form terug te krijgen, wanneer men teruggaat?

Acties:
  • 0 Henk 'm!

Verwijderd

hmmzz, ligt aan je headers in het addtopic bestand.. daar staat vast en zeker no cache, must be revalide oid..

Dat daar weg halen. . dan moet het werken.. het is irri ja i know

Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
OF een URL maken met de parameters erin (dus form.php?naam=Jan&achternaam=Piet)
OF een link maken met in de onClick event "javascript:history.go(-1);"

Acties:
  • 0 Henk 'm!

Verwijderd

Op dinsdag 02 juli 2002 15:47 schreef Orphix het volgende:
OF een URL maken met de parameters erin (dus form.php?naam=Jan&achternaam=Piet)
OF een link maken met in de onClick event "javascript:history.go(-1);"
Dat werkt toch niet zegt ie het :z

[edit: whooops , je moet toch die history.go nemen :D

[edit:
Daar onder verschijnt dan een Go Back button. (gewoon een href naar het originele form).
/me :z een beetje

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
die had ik al :(
code:
1
<input type=button value="Ga terug" onClick="history.go(-1)">

maar dat ging ook niet

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13

pietje63

RTFM

een knop maken met 'opnieuw invoeren' action=voegtoe2.php
en dat is een formulier met allemaal hidden fields
met bijv
code:
1
<input type=hidden name="naam" value="<? echo ($naam) ?>">

en dan in het nieuwe formulier
code:
1
<input type=text name="naam" value="<? echo ($naam) ?>">

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:48

Crazy D

I think we should take a look.

Waarom niet de form laten posten naar zichzelf? Of moet je een "serie" van forms doorlopen? Als het 1 enkele form is, lijkt het me net zo handig om in dezelfde file de afhandeling te doen, en als er dan iets niet goed is kun je de uitgelezen waardes gewoon in de form planten.

Exact expert nodig?


Acties:
  • 0 Henk 'm!

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 23:10

Altaphista

1. check manual, 2. ask

kan je niet met een javascript onSubmit laten checken of het is ingevuld?
Anders lijkt een post naar zichzelf (Crazy_D) wel handig en dan if isset($var) print value=\"$var\"; oid.

Je gaat het pas zien als je het doorhebt.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zelf heb het idee om alles in een sessie te zetten en die weer uit te lezen als er een back button wordt gebruikt ;) als de waarden nog vol zijn dan weer terug zetten en anders wordt het '' oftewel niets.

en wanneer er een query volgt kan je gelijk na de query de sessies leegmaken :)

Acties:
  • 0 Henk 'm!

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 16-09 10:29

Apache

amateur software devver

Op dinsdag 02 juli 2002 21:12 schreef Crazy_D het volgende:
Waarom niet de form laten posten naar zichzelf? Of moet je een "serie" van forms doorlopen? Als het 1 enkele form is, lijkt het me net zo handig om in dezelfde file de afhandeling te doen, en als er dan iets niet goed is kun je de uitgelezen waardes gewoon in de form planten.
Precies dat is een vrij goede oplossing imo die ik ook vaak gebruik:
PHP:
1
<?if (isset($_POST["submit"])){    $insert = true;    if (!is_string(trim($_POST["naam"]))){         $insert = false;         $error[] = "Geen naam ingevuld <br />";    }        // nog andere gegevens valideren, $insert op false zetten als ze niet voldoen}if (!isset($_POST["submit"] &amp;&amp; !$insert){        for($i=0;$i<count($error);$i++){        print($error[$i]);    }        print($formhtml);// met je postwaarden als default} else {    print("alles ok blabla");    //je insert query oid}?>

Dit is vrij gebruiksvriendelijk, schrijf ook enkele functie's om dropdownlists ed hun originele waarde terug te geven en dan heb je een vrij userfriendly pagina.

[edit]
Damn topix verneukte bij de edit m'n code, gelukkig komt parse eraan :)

If it ain't broken it doesn't have enough features


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op dinsdag 02 juli 2002 22:12 schreef Apache het volgende:

[..]

Precies dat is een vrij goede oplossing imo die ik ook vaak gebruik:
Dit is vrij gebruiksvriendelijk, schrijf ook enkele functie's om dropdownlists ed hun originele waarde terug te geven en dan heb je een vrij userfriendly pagina.

[edit]
Damn topix verneukte bij de edit m'n code, gelukkig komt parse eraan :)
Ik moet inderdaad een serie van forms doorlopen. Eerst krijg je form.php, die post naar correctform.php (die valideerd) en if alles is ok, dan geeft ie de waardes weer van form.php, en post ie door naar processform.php (die de queries afhandeld. Het lijkt er echter op dat als hij een error ziet tijdens het valideren, dat ie meteen alles wegkiepert, maar dat heb ik nergens aangegeven dat ie alles weg mag kieperen.

Zou dat kunnen komen omdat ie eerst valideerd, en als er een error is dan komt ie met een msg blabla is niet ok. En volgens mij gebruikt ie dan niet meer de hidden fields die onderaan de pagina staan??? |:(

[edit]
Ik heb overigens bovenin correctform.php dit o.a. als validatie gebruikt:
PHP:
1
<?if ($fname == "")    {    echo "<center><b>U heeft geen voornaam ingevuld.</b><br><form action=form.php><INPUT type=submit value=\"Ga terug\" name=form></center>";    exit;}?>

Volgens mij zit daar het probleem, want die post dus op die manier helemaal niks terug naar form.php.

Hoe zou ik eenvoudig de waardes terug kunnen posten zonder de code 3km lang wordt? Ik heb namelijk 10 van dit soort regels staan. En om nou 10 keer de waardes hidden te posten is ook onzin volgens mij.

Acties:
  • 0 Henk 'm!

Verwijderd

Dit komt zeer waarschijnlijk doordat je een session_start(); op de formpagina aanroept... ik heb het probleem ook.. en 'het schijnt' en windows bug te zijn...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op woensdag 03 juli 2002 09:54 schreef Timz het volgende:
Dit komt zeer waarschijnlijk doordat je een session_start(); op de formpagina aanroept... ik heb het probleem ook.. en 'het schijnt' en windows bug te zijn...
Ik heb geen session, wel cookies.

Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:48

Crazy D

I think we should take a look.

Op woensdag 03 juli 2002 08:58 schreef Zenith4ever het volgende:
Ik moet inderdaad een serie van forms doorlopen. Eerst krijg je form.php, die post naar correctform.php (die valideerd) en if alles is ok, dan geeft ie de waardes weer van form.php, en post ie door naar processform.php (die de queries afhandeld.
Hmm da's toch 1 form op zich? Vraag invoer -> valideer -> verwerk. Vind ik toch klinken alsof dat prima in 1 pagina af te handelen is, en imho maak je het jezelf daarmee een stuk makkelijker.

Exact expert nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Op woensdag 03 juli 2002 10:07 schreef Zenith4ever het volgende:

[..]

Ik heb geen session, wel cookies.
Haal de cookie code eens weg... of kijk even of je session_start(); vanuit de php config wordt aangroepen

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het al opgelost, op een crappy manier. (ff tijdelijk)
Ik heb alle waardes meegestuurd in de Go Back href.
form.php?username=$username enzo. Ik heb nu wel een URL van 10km lang, maar het formulier zit toch in een popup window zonder adresbalk enzo, dus ook niet zo'n ramp.

Ik denk dat ik het formulier ff opnieuw ga maken maar dan inderdaad in 1 pagina die alles kan verwerken.

Acties:
  • 0 Henk 'm!

  • x-man
  • Registratie: September 2001
  • Laatst online: 22-08 12:38

x-man

Proud newbie!

Verwijderd schreef op 03 juli 2002 @ 11:03:
[...]


Haal de cookie code eens weg... of kijk even of je session_start(); vanuit de php config wordt aangroepen
Ik heb hetzelfde probleem, is er al een workaround op gevonden? Mozilla doet het gewoon goed, maar explorer niet! Explorer geeft me wel vaker problemen, zoals het niet pakken van window.back() :(

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Mooie schop.
Open misschien zelf een topic met voldoende relevante informatie (zie de quickstart), da's voor iedereen makkelijker, aangezien men dan niet eerst een aantal replies hoeft te lezen die niets met jouw probleem te maken hebben.
Open jouw topic ook in het juiste forum (config. problemen -> SA, programmeerproblemen -> P&W)

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.