Bestell oder kontaktfomulare

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Bestell oder kontaktfomulare

    Hallo zusammen

    Hab da mal eine frage. undzwar versuche ich mir grade ein neues bestellfomular zu basteln, jedoch habe ich das Problem das wenn man z.b was falsches eingetragen hat oder ein feld vergessen hat, und wieder auf zurück geht das dann alle felder wieder leer sind und man alle wieder neu ausfüllen muss. Hab das auch soweit hinbekommen das die felder gefüllt bleiben jedoch übergibt er dann den inhalt nicht. Und wenn ich das wieder änder dann überit er den inhalt aber die felder sind dann wieder leer. Hat da jemand einen tipp wie ich das am besten mache?


    Hier mal ein beispiel code von mir

    Quellcode

    1. <?php
    2. session_start();
    3. //Prüfen ob wichtige Felder ausgefüllt worden sind!
    4. if($_POST['anrede']=="" || $_POST['name']=="")
    5. {
    6. echo"<b><h3><span class='style10'>Absenden fehlgeschlagen</span></h3></b>";
    7. echo"";
    8. echo"<span class='style14'>Das Absenden des bestellfomulars ist fehlgeschlagen. Grund dafür ist das Sie nicht alle Pflichtfelder ausgefüllt haben, oder falsche daten eingetragen worden sind.</span><br>";
    9. echo"<br>";
    10. echo"<span class='style10'>Vielen Dank</span><br>";
    11. echo"<br>";
    12. if($_POST['anrede']=="")
    13. {
    14. echo"<span class='style11'>*Bitte Sie eine Anrede aus!</span><br>";
    15. }
    16. if($_POST['name']=="")
    17. {
    18. echo"<span class='style11'>*Bitte geben Sie Ihren Vornamen ein!</span><br>";
    19. }
    20. echo "<br><span class='style10'><a href='index.php?act=webspace'>Zurück Zur Bestellung</span></a>";
    21. }
    22. else
    23. {
    24. $betreff =' hier die emailausgabe
    Alles anzeigen




    Und hier das Fomular

    Quellcode

    1. <?
    2. session_start();
    3. switch ($_GET['lol']) {
    4. default:
    5. //Die Einzelnen Seiten//
    6. break;
    7. case startseite:
    8. include('online.php');
    9. break;
    10. break;
    11. case bestellung_absenden:
    12. include('webpaket_bestellung.php');
    13. break;
    14. }
    15. {
    16. echo '<html>
    17. <head>
    18. <title>Bestellformular</title>
    19. <style type="text/css">
    20. <!--
    21. .style4 {font-size: 12px}
    22. .style6 {
    23. font-size: 12px;
    24. font-weight: bold;
    25. }
    26. .style9 {color: #000000}
    27. .style57 {
    28. color: #000000;
    29. font-size: 14px;
    30. font-weight: bold;
    31. }
    32. .Stil3 {color: #000000; font-weight: bold; }
    33. -->
    34. </style>
    35. </head>
    36. <body bgcolor="#FFFFFF">
    37. <p class="style57">Schritt 2:</p>
    38. <form action="index.php?act=check&lol=bestellung_absenden" method="post" class="style9">
    39. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
    40. <tr>
    41. <td width="139" style="background-color: #ffffff;"><span class="Stil3">Name:</span></td>
    42. <td width="213" style="background-color: #ffffff;"><input name="name" type="text" value="'.$_SESSION['name'].'" size="25" /></td>
    43. <td width="171" style="background-color: #ffffff;">&nbsp;</td>
    44. <td width="472" style="background-color: #ffffff;">&nbsp;</td>
    45. </tr>
    46. </table>
    47. <p align="left"><input type="submit" value="Bestellung Abschicken" name="B1">
    48. </p>
    49. </form>
    50. </body>
    51. </html> ';
    52. }
    53. ?>
    Alles anzeigen



    Hab das auch so versucht


    $_SESSION['name'] = $_POST ['name']=="")

    So übergibt er das jedoch sind die felder beim zuück gehen leer


    wenn ich es so versuche bleiben die felder gefüllt aber er übergibt es nicht mehr

    $_SESSION['name'] = $_POST ['name'])



    Vieleicht hat einer nen tipp von euch gruss Dragon
    Riek-Media.com - Webhosting riek-media.com
  • Im rahmen der Benutzerfreundlichkeit würde ich fehlenden oder falschen Benutzereingaben einfach wieder die Seite mit dem Formular aufrufen und dort die entsprechenden Felder mit einer Notiz markieren.

    Wenn man das dann noch schon mit Javascript und / oder AJAX macht, ist es noch schöner.
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Dann mach es ohne AJAX.
    Einfach wieder per header auf die Formularseite gehen und dann aus einer Variable die Fehler auslesen.
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Re: Bestell oder kontaktfomulare

    "Dragon4048" schrieb:

    Hab das auch so versucht
    $_SESSION['name'] = $_POST ['name']=="")
    So übergibt er das jedoch sind die felder beim zuück gehen leer

    wenn ich es so versuche bleiben die felder gefüllt aber er übergibt es nicht mehr
    $_SESSION['name'] = $_POST ['name'])


    Machst du die Variablenzuweisung in der if-Bedingung?

    Ist Aufrufseite und Zielseite die selbe? Also index.php mit Includes? Dann brauchst du schonmal keine Sessions. Variablen die du in einer includierten Datei setzt, sind auch außerhalb verfügbar.

    Die Strings in der switch/case solltest du außerdem wie Strings behandeln und in Anführungszeichen schreiben.
  • Hi,

    also wenn du peAr benutzen kannst, kann ich dir das für so ne kleine Anfrage ans Herz legen (bsp) :

    Quellcode

    1. <?php
    2. require_once "HTML/QuickForm.php";
    3. $form = new HTML_QuickForm('frmTest', 'get');
    4. $form->addElement('header', 'MyHeader', 'Testing QuickForm');
    5. $form->addElement('text', 'MyTextBox', 'What is your name?');
    6. $form->addElement('reset', 'btnClear', 'Clear');
    7. $form->addElement('submit', 'btnSubmit', 'Submit');
    8. $form->addRule('MyTextBox', 'Your name is required', 'required');
    9. if ($form->validate()) {
    10. # If the form validates then freeze the data
    11. $form->freeze();
    12. }
    13. $form->display();
    14. ?>
    Alles anzeigen


    Nachzulesen auf midnighthax.com/quickform.php

    Falls nicht, sehe meine Nachricht als nichtig :)
  • Wollte gerne ein 3 step bestellsysteme machen jedoch hat dfas bei mir nicht gefunzt. Hatte das soweit hin bekommen das er die daten nun auch behalten hat jedoch klapt das nicht mit dem 3 seiten systeme.

    Hat vieleicht jemand ein beispiel wie ich das machen könnte? er zeigt unter dem ausgabefehler dann immer das fomular an ich weiss nicht mehr weiter :cry:
    Riek-Media.com - Webhosting riek-media.com
  • hmm also so ein 3seiten prinzip kannst du eigentlich so lösen

    1.seite

    Quellcode

    1. session_start(); //in die erste zeile
    2. if (empy($_GET['schritt']))
    3. {
    4. header ("Location: http://deineurl/script/register.php?schritt=1");
    5. }
    6. if (($_GET['schritt'])=="1")
    7. {
    8. //erstes anmelde formular
    9. // überprüfen von den ersten eingaben und speichern in sessions
    10. //also $_SESSION['myfeld'] = $_POST['myfeld'];
    11. }
    12. if (($_GET['schritt'])=="2")
    13. {
    14. // überprüfen von den zweiten eingaben und speichern in sessions
    15. //also $_SESSION['myfeld'] = $_POST['myfeld'];
    16. }
    17. if (($_GET['schritt'])=="3")
    18. {
    19. // alles i.O. dann komplett speichern in db oder sonstewo!
    20. }
    Alles anzeigen


    Postfelder wieder anzeigen nach dem senden obwohl fehler dann einfach als Formular

    Quellcode

    1. <input type="text" value="<?php print $_SESSION['myfeld']; ?>"></input>

    ODER

    Quellcode

    1. <input type="text" value="<?php print $_POST['myfeld']; ?>"></input>


    hoffe konnte dir helfen ;)
    Beste Grüße,
    M4rc3L-XCN
  • "marcel" schrieb:


    Postfelder wieder anzeigen nach dem senden obwohl fehler dann einfach als Formular

    Quellcode

    1. <input type="text" value="<?php print $_SESSION['myfeld']; ?>"></input>

    ODER

    Quellcode

    1. <input type="text" value="<?php print $_POST['myfeld']; ?>"></input>



    Wobei man hier auf keinen Fall vergessen sollte "magic-quotes" und "htmlspecialchars" zu behandeln, sonst gibt's evtl ein böses Erwachen. ;)

    70abc
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan