login  Naam:   Wachtwoord: 
Registreer je!
 Forum

problemen met formulier icm mysql (Opgelost)

Offline dreamworld - 27/01/2006 09:14 (laatste wijziging 28/01/2006 22:19)
Avatar van dreamworldHTML beginner Ik heb een (klein) probleem waar ik niet uit kom. Ik ben bezig met een formulier die gegevens in een db moet stoppen.
Het gaat als volgt:
formulier -> op "voorbeeld" klikken -> je krijgt een voorbeeld te zien -> op "toevoegen" klikken -> alles in de db stoppen.

Maar bij het laatste gaat het fout, nadat je op toevoegen hebt geklikt opent ie simpelweg weer het formulier zonder dat ie iets in de db heeft gestopt.

Hier de code:

  1. <?php
  2. if ($_POST['voorbeeld'])
  3. {
  4. if ($_POST['foto'] != "" AND $_POST['categorie'] != "" AND $_POST['plaats'] != "" AND $_POST['adres'] != "" AND $_POST['vraagprijs'] != "" AND $_POST['informatie'] != "")
  5. {
  6. echo '<form name="form" method="post" action="">
  7. <div id="tabel">
  8. <div class="tabel_links">
  9. <div class="tabel_foto"> '.$_POST['foto'].' </div>
  10. </div>
  11. <div class="tabel_rechts">
  12. <input name="categorie" type="hidden" value="'.$_POST['categorie'].'">
  13. <div class="tabel_info1"> Plaats: </div> <div class="tabel_info2"> '.$_POST['plaats'].' </div>
  14. <div class="tabel_info1"> Adres: </div> <div class="tabel_info2"> '.$_POST['adres'].' </div>
  15. <div class="tabel_info1"> Vraagprijs: </div> <div class="tabel_info2"> '.$_POST['vraagprijs'].' </div>
  16. <div class="tabel_info1"> Beschrijving: </div> <div class="tabel_info3"> '.$_POST['informatie'].' </div>
  17. <div class="tabel_info1"> &nbsp; </div> <div class="tabel_info2"> &nbsp; </div>
  18. <div class="tabel_info1"> &nbsp; </div> <div class="tabel_info2">
  19. <input type="submit" name="toevoegen" value="Toevoegen"> </div>
  20. </div>
  21. </div>';
  22. }
  23. else
  24. {
  25. echo '<b>Error:</b> Niet alle velden zijn ingevuld.';
  26. }
  27. if ($_POST['toevoegen'])
  28. {
  29. mysql_query ("INSERT INTO test (id, categorie, foto, pdf, plaats, adres, vraagprijs, informatie) VALUES ('".$_POST['categorie']."', '".$_POST['foto']."', '".$_POST['pdf']."', '".$_POST['plaats']."', '".$_POST['adres']."', '".$_POST['vraagprijs']."', '".$_POST['informatie']."')");
  30. {
  31. echo '<b> Het huis of pand is succesvol toegevoegd aan de database. </b>';
  32. }
  33. }
  34. }
  35. else
  36. {
  37. echo '<form name="form" method="post" action="">
  38. <div class="admin_tabel">
  39. <div class="admin_tabel_inhoud1"> Categorie: </div> <div class="admin_tabel_inhoud2">
  40. <select name="categorie" size="1">
  41. <option value="1"> 1 </option>
  42. <option value="2"> 2 </option>
  43. <option value="3"> 3 </option>
  44. </select> * </div>
  45. <div class="admin_tabel_inhoud1"> Foto: </div> <div class="admin_tabel_inhoud2"> <input type="file" name="foto"> * </div>
  46. <div class="admin_tabel_inhoud1"> PDF bestand: </div> <div class="admin_tabel_inhoud2"> <input type="file" name="pdf"> </div>
  47. <div class="admin_tabel_inhoud1"> Plaats: </div> <div class="admin_tabel_inhoud2"> <input type="text" name="plaats"> * </div>
  48. <div class="admin_tabel_inhoud1"> Adres: </div> <div class="admin_tabel_inhoud2"> <input type="text" name="adres"> * </div>
  49. <div class="admin_tabel_inhoud1"> Vraagprijs: </div> <div class="admin_tabel_inhoud2"> <input type="text" name="vraagprijs"> * </div>
  50. <div class="admin_tabel_inhoud1"> Informatie: </div> <div class="admin_tabel_inhoud2"> <input type="text" name="informatie"> * </div>
  51. <div class="admin_tabel_inhoud1"> &nbsp; </div> <div class="admin_tabel_inhoud2"> <input type="submit" name="voorbeeld" value="Voorbeeld"> </div>
  52. <div class="admin_tabel_inhoud1"> &nbsp; </div> <div class="admin_tabel_inhoud2"> * Dit zijn verplichte velden! </div>
  53. </div></form>';
  54. }
  55. }
  56. ?>


Iemand die me de goeie kant op kan sturen?

4 antwoorden

Gesponsorde links
Offline Maarten - 27/01/2006 09:54 (laatste wijziging 27/01/2006 10:02)
Avatar van Maarten Erelid Dat komt waarschijnlijk omdat je $_POST vars verloren gaan bij de tweede submit.

Je hebt 2 oplossingen (IMO toch):
Sessies
Na de eerste submit stop je al je formdata in $_SESSION-vars. Bij de volgende submit kan je deze dan terug gebruiken (bekijk daarvoor de sessies-tutorial op deze site)

Hidden fields
Na je eerste submit, toon je de gegevens weer. Je kan op die pagina dan een formulier zetten met daarin hidden fields (<input type="hidden" value="<?=$_POST['iets']?>" name="iets" />), waardoor je formulier niet meer zichtbaar is maar wel nog bestaat, en je na het klikken op "bevestigen" of wat dan ook bij je tweede submit nogmaals $_POST kan gebruiken.

Ik zou de tweede manier verkiezen.


En btw, ik zou een beetje minder HTML echo'en, dat kost alleen maar parsetijd.

Doe het zo:
  1. <?php
  2. // Hier wat PHP geblaat
  3. if(mijnzooi) {
  4. ?>
  5. Hier wat HTML geblaat
  6. <?php
  7. // Hier nog meer PHP geblaat
  8. }
  9. ?>
Offline dreamworld - 27/01/2006 19:20 (laatste wijziging 31/01/2006 18:08)
Avatar van dreamworld HTML beginner @Murfy:
Die 2e manier werkt niet, als ik dit doe laat ie ook simpelweg het formulier zien en stopt ie niks in de db.

En dit formulier is nog nie af, der moeten nog meer dingen bij komen, maar eerst stapje voor stapje alles werkend zien te krijgen. Anders snap ik er op het eind geen bal meer van 

EDIT: der zaten wat fouten in de insert into query, heb het even aangepast, maar het probleem blijft 

EDIT 2: Niemand die er een oplossing voor heeft?
Offline robijn - 21/02/2006 10:32
Avatar van robijn Nieuw lid if ($_POST['foto'] !=="" AND $_POST['categorie'] !== ""
Offline dreamworld - 21/02/2006 11:16 (laatste wijziging 21/02/2006 11:27)
Avatar van dreamworld HTML beginner dat lost het probleem ook nie op.. hij slaat dat stukje waar alles in de db word gestopt gewoon over..

EDIT: heb de structuur wat aangepast en inmiddels doet ie al wat.. dus ik weet al waar de fout zat/zit 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.253s