login  Naam:   Wachtwoord: 
Registreer je!
 Forum

waardes weg na form actie ?

Offline vinTage - 03/06/2006 22:38
Avatar van vinTageNieuw lid Ik heb een offerte formulier gemaakt waar je een heleboel verplichte vakken moet invullen.
Zodra je dat dus hebt gedaan en op submit hebt geklikt ga je naar ?pagina=offverwerk toe, daar worden eventuele fouten gemeld als je bv een fout email gebruikte, maar als alles goed was ingevuld, dan echoed hij alles wat je hebt ingevuld.
Dit werkt dus allemaal perfect.

Maar als je iets vergeten bent in te vullen, of iets wilt veranderen dan klik je op "Go back" en kom je weer voor een LEEG formulier... 


Ik heb al vanalles geprobeerd zoals de afhandeling op dezelfde pagina en ipv history(1) back(-1) en een tussendoor pagina waar er gekeken word of er gepost was zoja include dit anders dat ...etc etc etc etc...maar ik BLIJF op een leeg formulier terug komen...wie o wie weet waar ik de fout inga ??


voor de liefhebbers van lappen code => hierheen Met deze code gebeurd de afhandeling op het formulier zelf.

Ik gebruik dezelfde code alleen met een form action naar een php file die alles checked zoals in het bovenste gedeelte staat van bovenstaande link.


Als iemand een tip heeft pls share thx

15 antwoorden

Gesponsorde links
Offline Rens - 03/06/2006 22:42 (laatste wijziging 03/06/2006 22:48)
Avatar van Rens Gouden medaille

Crew algemeen
Regel 9, maak daar eens dit van:
  1. if($_SERVER['REQUEST_METHOD'] == "POST")

Dat had ik toen straks ook de hele tijd, en jij blijkbaar niet? 

edit @hieronder: Dan weet ik het ook niet meer 
Offline vinTage - 03/06/2006 22:45 (laatste wijziging 03/06/2006 22:49)
Avatar van vinTage Nieuw lid @ Rensjuh: Nogmaals mijn dank voor daarstraks toen je me al geholpen had, en nu weer.

Helaas werkt die oplossing ook niet, net getest

edit @ hierboven, ik ook niet meer drom dat ik het hier ook nog eens vraag 

Offline GTW - 03/06/2006 22:57 (laatste wijziging 03/06/2006 22:58)
Avatar van GTW Gouden medaille

PHP gevorderde
ik doe het meestal zo:

bovenaan een pagina de vars aanmaken. nu neem ik als voorbeeld voornaam
  1. <?php
  2. $voornaam = "";
  3.  
  4.  
  5. if($_SERVER['REQUEST_METHOD'] == "POST"){
  6. # de velden hernoemen
  7. $voornaam = $_POST['voornaam'];
  8.  
  9. #een lege error aanmaken
  10. $error = "";
  11.  
  12. # controleren op fouten.
  13. #bijvoorbeeld een leeg veld
  14. if(empty($voornaam)){
  15. $error .= 'voornaam niet ingevuld';
  16. }
  17. #enz..
  18. if($error==""){
  19. # formulier verder verwerken
  20. }
  21. else{
  22. echo $error;
  23. }
  24. }
  25. ?>
  26. <html>
  27. <body>
  28. <form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
  29. <input type="text" name="voornaam" value="<?=$voornaam;?>" />
  30. <!-- enz... -->


hopelijk werkt dit goed...
Offline Ibrahim - 03/06/2006 23:00
Avatar van Ibrahim PHP expert of... je kunt bij errors een tijdelijke sessie aanmaken, en die weergeven in het formulier
Offline vinTage - 03/06/2006 23:03 (laatste wijziging 03/06/2006 23:51)
Avatar van vinTage Nieuw lid behalve die vars aanmaken doe ik nu toch hetzelfde ?

Ik heb btw net ALLEEN het offerte form bekeken, dus zonder te includen, en dan kan ik wel terug met daar de waardes nog ingevuld.......ligt het dan aan mn manier van includen ? :S

dus heb ik 2 manieren getest, maar op beide manieren lukte het niet.

Ik heb de vorige manier alweer gedelete, maar als er iemand baat bij heeft kan ik die manieren van includen wel tonen.

include 1
  1. if(isset($_GET['pagina']))
  2. {
  3. switch($_GET['pagina'])
  4. {
  5. case "home":
  6. include "home.php" ;
  7. break;
  8.  
  9. case "contact":
  10. include "contact.php" ;
  11. break;
  12.  
  13. //etc


include 2
  1. if (isset($_GET['pagina'])){
  2.  
  3. if($_GET['pagina']=='home'){
  4. include($_GET['pagina'].'.php');
  5. }
  6. elseif($_GET['pagina']=='contact'){
  7. include($_GET['pagina'].'.php');
  8. }
  9. //etc



dikke edit:
oh, GTW, je echoed je fouten NA het complete script, ok, dat heb ik niet, maar ik zal dat wel een gaan proberen 

update:
sjeesj, dat werkt ook niet, ik word mega wanhopig nu nog even en ik maak alles in flash 

gebruikte code => zelfs dit levert een LEEG form op

iemand anders nog een voorstel ?
Offline Rens - 04/06/2006 00:02
Avatar van Rens Gouden medaille

Crew algemeen
Ik denk hè, dat het aan de server ligt 
Bij mij werkt je code goed...
Offline vinTage - 04/06/2006 00:04 (laatste wijziging 04/06/2006 00:12)
Avatar van vinTage Nieuw lid hij staat nu op de host waarop dat ding uiteindelijk moet komen
http://www.benp...na=offerte
vul maar eens één letter in. 

en dit is op mijn local server:
http://81.83.22...na=offerte

edit: en net ook nog op nog een andere host, en nog geen succes 
Offline zointer - 04/06/2006 06:38 (laatste wijziging 04/06/2006 08:13)
Avatar van zointer HTML gevorderde Doe het eens op deze manier
  1. <?php
  2. if($fout != 0){ echo $verplicht."
  3. <form method=\"post\" action=\"javascript:history.go(-1)\">
  4.  
  5. <input type=\"submit\" name=\"Terug\" value=\"Corrigeren\">
  6.  
  7. </form>"; }
  8. ?>

[edit]
http://www.site...mp;id=4105
http://www.site...p;id=13301
http://www.site...55#id12153
Ect....
Offline Simon - 04/06/2006 09:17
Avatar van Simon PHP expert doe zoals siliecom zegt

session_start(); op je offerte
<input ... value="<?=$_SESSION['hiereennaam']?>" />

de pagina waarnaar je verwijst ook session_start();
daar controleer je de post waarden, maak je linkje corrigeer, en je wordt verwezen naar ?pagina=offerte
geen history.back ofzo

zou moeten lukken
Offline Ibrahim - 04/06/2006 10:57
Avatar van Ibrahim PHP expert ik heb net deze code geprobeerd en net zoals Rensjuh krijg ik ook een ingevuld veld 
Offline vinTage - 04/06/2006 12:14 (laatste wijziging 04/06/2006 12:51)
Avatar van vinTage Nieuw lid @silicom, ik ook als ik niet include, maar zodra ik het include, dan is het gedaan..
bekijk dit maar en dan de php zonder te include staat hier.

EDIT:
okay, ik ben nu een stapje verder.
ik gebruik nu dit als index:
  1. <?php // ob_start(); session_start(); include("config.php"); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <title>testje</title>
  7. </head>
  8.  
  9. <body>
  10. <table width="100%" border="1" cellspacing="0" cellpadding="0">
  11. <tr>
  12. <td>
  13. <?php
  14. // include pagina script
  15.  
  16. if(isset($_GET['pagina']))
  17. {
  18. switch($_GET['pagina'])
  19. {
  20. case "offerte":
  21. include "offerte.php" ;
  22. break;
  23. }
  24. } else {
  25. include "offerte.php" ;
  26. }
  27.  
  28. ?>
  29. </td>
  30. </tr>
  31. </table>
  32. </body>
  33. </html>


En dit als offerte.php
  1. <?php
  2. if(isset($_POST['verzenden']))
  3. {
  4. $verplicht="";
  5. $fout=0;
  6. //persoons gegevens checken op inhoud en valid gedoe
  7. if(strlen($_POST['naam']) <2){$verplicht .="Naam vergeten<br />"; $fout++;}
  8.  
  9.  
  10. if($fout == "")
  11. {
  12. echo $_POST['naam']."<br />";
  13. }
  14.  
  15.  
  16. else
  17. { //echo fouten
  18. echo $verplicht."<br />";
  19. echo "<a href=javascript:history.back(1)>Corrigeren</a>";
  20. }
  21.  
  22. }//einde if isset post
  23. else
  24. { //toon het form
  25. ?>
  26. <form name="offerte" method="post" action="<?=$_SERVER['REQUEST_URI']?>">
  27. <input name="naam" type="text" />
  28. <input name="verzenden" type="submit" value="Button" />
  29. </form>
  30. <?php
  31. }
  32. ?>

Dit werkt perfect, dus als ik terug ga, dan staat daar nog mn ingegeven waarde, maar zodra ik de bovenste regel in mn index uit de commenttags haal, dan is het om zeep 

update:

Zodra ik alleen ob_start en de include hou gaat het goed, het gaat fout als ik de sessie start....
Offline Rens - 04/06/2006 12:49
Avatar van Rens Gouden medaille

Crew algemeen
Probeer het eens zonder de ob_start?
Werkt dat niet, probeer het zonder de session_start enz...
Totdat je alle mogelijkheden hebt gehad.
Misschien dat je er dan achter komt waar het aan ligt.
Offline Ontani - 04/06/2006 12:51 (laatste wijziging 04/06/2006 12:51)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
hoogstwaarschijnlijk aan session_start();
dat hij een nieuwe sessie aanmaakt bij het teruggaan en daardoor de vorige waardes niet "ophaalt"
Offline vinTage - 04/06/2006 12:51 (laatste wijziging 04/06/2006 13:26)
Avatar van vinTage Nieuw lid jep de sessie, als ik die weghaal gaat het goed.
pfff, daar ben ik dal al 2 dagen naar opzoek 

update:
JEEHAA: Nu werkt het naar behoren, en is gelijk dit opgelost.
Alleen op de pagina's ?pagina=verhuur heb ik dat probleem nog, omdat daar een sessie word aangemaakt voor de admin.
Ik start nu de session niet op de index, maar alleen op de paginas waar de admin iets kan doen.
Ik zal hem overhalen om een andere host te nemen, want die sessies werken dik klote op die host.

Maar dit probleem is iig opgelost en werkt nu zoals het hoort.

Al vind ik het nog steeds raar dat een session_start dit probleem veroorzaakt.
Offline Wim - 04/06/2006 14:10
Avatar van Wim Crew algemeen je kan ook altijd hidden fields aanmaken (<input type="hidden" name="field" value="waarde">). Je registreerd je Go Back button dan als een submit (<input type="submit" name="goback" value="Go Back!">") en op je andere pagina zet je in het value="" gedeelte iets van $_POST['field']

Dat zou ook moeten werken... 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.265s