Wert in Eingabefeld behalten nach nicht erfolgreichem Submit

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wert in Eingabefeld behalten nach nicht erfolgreichem Submit

    Hallo,

    ich habe ein Formular innerhalb einer php/mysql Datenbank in dem einige Pulldownmenüs und Textfelder drin sind.

    3 dieser Textfelder sind Pflichtfelder - und wenn diese nicht ausgefüllt werden, erscheint eine Fehlermeldung
    und das Formular wird neu aufgerufen und alle Felder wieder "resettet".

    Jetzt soll es aber so sein, dass der Wert der Felder behalten wird, sodass man nicht wieder alles neu eintippen muss, wenn man mal vergessen hat ein Pflichtfeld auszufüllen.

    Derzeit sieht der Code so aus:

    PHP-Code:
                           <td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="" />
            <
    span class="meldung"><b></b></span>
            </
    td
    Um jetzt den Wert zu behalten hab mal folgendes probiert:
    PHP-Code:
            <td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="
            <?php 
            
    if ($fehler 'value'){ 
            echo 
    $beanst
            } 
            
    ?>" />
            <span class="meldung"><b></b></span>
            </td>
    Da behält er zwar den Wert im Textfeld drin - aber das Textfeld selbst kann an jeder beliebigen Stelle angeklickt und beschrieben werden (siehe angehängter Screenshot) ...

    Weiss da jemand eine Lösung?
    Angehängte Dateien

  • #2
    es gibt noch n attribut für text-felder: readonly

    Kommentar


    • #3
      Original geschrieben von Mercury1987
      es gibt noch n attribut für text-felder: readonly
      Und was soll mir das bringen? Damit sperr ich mir doch nur das Feld, das niemand eine Eingabe machen kann, was ja nicht den gewünschten Effekt bringt ...

      Kommentar


      • #4
        was ist denn sonst deine frage? ich hab daraus gelseen, dass du nit willst, dass jemand reinschreiben kann. ich nehm dann mal an, dass es dir nit passt, dass da soviel abstand dazwischen ist, oder was???

        Kommentar


        • #5
          Was du vorhast nennt sich "Affenformular".
          Google gibt gerne Auskunft.
          Wir werden alle sterben

          Kommentar


          • #6
            if ($fehler = 'value') ist immer TRUE!

            Kommentar


            • #7
              Original geschrieben von onemorenerd
              if ($fehler = 'value') ist immer TRUE!
              erstens das ud zweitens könntest Du auch ein register_globals Problem haben, das kann man nicht 100% erkennen, da Du nur ein code fragment gepostet hast
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Original geschrieben von Mercury1987
                was ist denn sonst deine frage? ich hab daraus gelseen, dass du nit willst, dass jemand reinschreiben kann. ich nehm dann mal an, dass es dir nit passt, dass da soviel abstand dazwischen ist, oder was???

                Ich quote hier einfach nochmal mein Anliegen, weiss aber wirklich nicht was daran nicht verständlich ist:

                Jetzt soll es aber so sein, dass der Wert der Felder behalten wird, sodass man nicht wieder alles neu eintippen muss, wenn man mal vergessen hat ein Pflichtfeld auszufüllen.

                In Kurzform nochmals der Ablauf:

                - Formular ausfüllen
                - 1 Pflichtfeld aus Versehen vergessen auszufüllen
                - Abschicken klicken
                - Fehlermeldung erscheint und Formulareingaben werden zurückgesetzt / gelöscht

                Und DAS (Formulareingaben werden zurückgesetzt / gelöscht) soll nicht passieren

                - es soll eine Fehlermeldung erscheinen "Pflichtfelder wurden nicht ausgefüllt" aber die bereits eingegeben Daten sollen in den Textfeldern erhalten bleiben.

                Kommentar


                • #9
                  die ganzen Leerzeichen kommen daher, dass du hinter dem Value auch noch ne neue Zeile anfängst, wenn du das so machst, sollte es funktionieren, wobei es dabei keinerlei Prüfungen gibt
                  PHP-Code:
                  <td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="<?php echo $_POST['beanst']; ?>" />
                   <span class="meldung"><b></b></span>
                  </td>

                  Kommentar


                  • #10
                    Original geschrieben von krel
                    die ganzen Leerzeichen kommen daher, dass du hinter dem Value auch noch ne neue Zeile anfängst, wenn du das so machst, sollte es funktionieren, wobei es dabei keinerlei Prüfungen gibt
                    PHP-Code:
                    <td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="<?php echo $_POST['beanst']; ?>" />
                     <span class="meldung"><b></b></span>
                    </td>
                    Das war des Rätsels Lösung ! :-)

                    Vielen Dank für die Hilfe!

                    Kommentar


                    • #11
                      Nachtrag als Hinweis: Funktioniert allerdings nur bei Textfelder, nicht bei Pulldownmenüs, die Options werden mit dieser Methode nicht übernommen.

                      Kommentar


                      • #12
                        Bei größeren Formularen wird das auf die Dauer ziemlich lästig - QuickForm oder Zend_Form bieten da eine gute Alternative - schau mal rein.

                        Für Zend_Form kannst du z.B. mit $form=new MyForm() ein komplettes Formular erstellen - welches du natürlich zuvor definiert hast - und dann einfach mit $form->populate($data) Werte übergeben - und fertig.

                        Filter und Validator sind bei beiden auch gleich mit drin, so dass sich Eingabeprüfung, Fehlermeldung und Vorbelung mit Default bzw. Usereingaben fast wie von selbst erledigt.

                        Gruß
                        Patrick

                        Kommentar


                        • #13
                          Original geschrieben von Patrick_PQ
                          Bei größeren Formularen wird das auf die Dauer ziemlich lästig - QuickForm oder Zend_Form bieten da eine gute Alternative - schau mal rein.

                          Für Zend_Form kannst du z.B. mit $form=new MyForm() ein komplettes Formular erstellen - welches du natürlich zuvor definiert hast - und dann einfach mit $form->populate($data) Werte übergeben - und fertig.

                          Filter und Validator sind bei beiden auch gleich mit drin, so dass sich Eingabeprüfung, Fehlermeldung und Vorbelung mit Default bzw. Usereingaben fast wie von selbst erledigt.

                          Gruß
                          Patrick

                          Ui ... sieht auf den ersten Blick schonmal schön aus ... danke für den Tip!

                          Kommentar

                          Lädt...
                          X