tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
880
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von multimolti
    multimolti multimolti ist offline Game Programmer
    Registriert seit
    Jan 2007
    Beiträge
    802
    Hallo!

    Ich habe eine HTML-Auswahlliste, in der man etwas auswählen kann. Wenn das Formular jetzt abgesendet wird, und die Informationen nicht stimmen, will ich, das die vorher eingegebenen Daten eingestellt bleiben. Bei <input> oder <textarea> ist das kein Problem, aber wenn ich z.B. 5 <option>-Tags habe, und will, das nur bei dem vorher ausgewählten zusätzlich der Text "selected" ausgegeben wird, wie mache ich das am Besten?

    Für jede Möglichkeit eine Variable anzulegen und dann mit einer if-Abfrage zu checken, welcher Variable jetzt "selected" oder "" zugewiesen wird ist ziemlich bescheiden.

    Wenn ich die Information über die Möglichkeiten in einem Array hätte, könnte ich das mit einer foreach-Schleife machen, und dann dort if($möglichkeit == $möglichkeit_nr) echo "selected"; einfügen, oder?
     

  2. #2
    Avatar von derpfaff
    derpfaff derpfaff ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    167
    Sofern ich es richtig verstanden habe: ja, ist möglich.
    Und so ganz spontan fällt mir auch keine bessere Lösung ein...
     

  3. #3
    Avatar von Danielku15
    Danielku15 Danielku15 ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Österreich
    Beiträge
    731
    Blog-Einträge
    3
    Ist auch so die einzige Lösung was es da gibt. Es gibt höchstens andere Möglichkeiten wie man das Selected hinein schreibt. Also zum Beispiel bei jedem Durchlauf über eine If-Abfrage die HTML-Attribute in eine Variable speichern. Und diese dann einfach bei jedem Option anhängen.
     

  4. #4
    Registriert seit
    Aug 2005
    Ort
    Leer
    Beiträge
    275
    Hallo,
    was ganz schnell und einfach ist, ist einfach das was du übergeben hast wieder da einzufügen.

    Also, du hast nun sag ich mal diese aufstellung:
    HTML-Code:
    <select size="1" name="form1">
        <option selected>NR.1</option>
        <option>NR.2</option>
      </select>
    Dann machste einfach auf der nächsten Seite, wenn es nicht stimmt:
    HTML-Code:
    <select size="1" name="form1">
        <option selected><?php echo $vongerade; ?></option>
        <option>-------</option>
        <option>NR.1</option>
        <option>NR.2</option>
      </select>
    Ist nicht schön, aber schnell und einfach.
     

  5. #5
    KD3 KD3 ist offline
    Registriert seit
    Apr 2007
    Beiträge
    453
    musst das nicht so sein?

    <option selected="selected" > </option> ?
     

  6. #6
    Avatar von multimolti
    multimolti multimolti ist offline Game Programmer
    Registriert seit
    Jan 2007
    Beiträge
    802
    nein, es ist einfach nur <option selected>bla</option>.

    Dann werde ich es eben mit diesem Array machen, weil es ist wirklich dämlich, es so zu machen:
    PHP-Code:
        switch($firmenart)
        {
            case 
    "1"$form_checked['gmbh'] = "selected"; break;
            case 
    "2"$form_checked['corporation'] = "selected"; break;
            case 
    "3"$form_checked['foundation'] = "selected"; break;
            case 
    "4"$form_checked['ag'] = "selected"; break;
            default: 
    $form_checked['gmbh'] = "selected"; break;
        } 
     

  7. #7
    Avatar von Danielku15
    Danielku15 Danielku15 ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Österreich
    Beiträge
    731
    Blog-Einträge
    3
    Zitat Zitat von KD3 Beitrag anzeigen
    musst das nicht so sein?

    <option selected="selected" > </option> ?
    Bei XHTML ja. bei HTML nein

    ---------------------------
    Woher beziehst du deine Daten? Diese Gesellschaftsformen müssen ja wo abgelegt sein. In irgend einer Datenbank oder so.
     

  8. #8
    Avatar von multimolti
    multimolti multimolti ist offline Game Programmer
    Registriert seit
    Jan 2007
    Beiträge
    802
    Ne, die habe ich mir einfach ausgedacht
    Wird mal ein Browsergame, wo man bei der Registrierung neben Benutzernamen auch Firmennamen und eben die Geschäftsform angeben kann. Habe nur mal zum Test ein Registrations-Client gemacht, und da dann 4 Formen eingetragen. Später wird das dann aus einer Datenbank kommen, ja.

    Infolink: http://imbissgame.im.funpic.de/
     

  9. #9
    Avatar von Danielku15
    Danielku15 Danielku15 ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Österreich
    Beiträge
    731
    Blog-Einträge
    3
    Wenn mal später alles in eine Datenbank kommt sollte es ja nicht das Problem sein die ID abzufragen welche gewählt wurde. Den Array bekommst du ja automatisch aus der DB (inkl. ID). Dann wie bereits gesagt die If-Abfrage.
     

  10. #10
    Avatar von Gawayn
    Gawayn Gawayn ist offline Mitglied Brokat
    Registriert seit
    Dec 2003
    Beiträge
    309
    Am elegantesten löse ich dieses altbekannte Problem mit JavaScript -- ich schreibe also überhaupt keinen PHP-Code, um eine Vorauswahl im <select> zu treffen, sondern lasse das von einer kleinen JavaScript-Zeile erledigen. Geht natürlich nur, wenn im Browser JavaScript aktiviert ist -- was allerdings bei mehr oder weniger allen Leuten der Fall ist.

    Wenn ich absolute Kompatibilität will, komme ich natürlich um PHP-Code nicht herum. In diesem Fall sorge ich für eine Anwendungsarchitektur, welche die Behandlung von falschen Eingaben in Formularen möglichst automatisiert.

    -Gawayn
     

  11. #11
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Ich mach das immer mit Arrays, ich wüsste nichts, was da eleganter wäre.
     

  12. #12
    Avatar von multimolti
    multimolti multimolti ist offline Game Programmer
    Registriert seit
    Jan 2007
    Beiträge
    802
    Habe auch schon ein Javascript, was die Eingaben überprüft, aber das ist ja nur zum Benutzer-Comfort da, PHP muss die Eingaben allein gegen Spamming noch mal überprüfen.

    Ich werde es dann wohl mit einem Array machen, Danke.
     

  13. #13
    Avatar von Gawayn
    Gawayn Gawayn ist offline Mitglied Brokat
    Registriert seit
    Dec 2003
    Beiträge
    309
    Habe auch schon ein Javascript, was die Eingaben überprüft
    JavaScript soll keine Fehlerüberprüfung vornehmen. Ich schrieb das hier:

    ich schreibe also überhaupt keinen PHP-Code, um eine Vorauswahl im <select> zu treffen, sondern lasse das von einer kleinen JavaScript-Zeile erledigen
    Im Fall, dass ein Fehler festgestellt wurde, übernimmt JavaScript das Auswählen einer Option im Listenfeld und entlastet somit den PHP-Code.

    -Gawayn
     

  14. #14
    Avatar von multimolti
    multimolti multimolti ist offline Game Programmer
    Registriert seit
    Jan 2007
    Beiträge
    802
    Achso. Wie sieht denn so ein JavaScript aus?
     

  15. #15
    Avatar von Gawayn
    Gawayn Gawayn ist offline Mitglied Brokat
    Registriert seit
    Dec 2003
    Beiträge
    309
    Wenn du JavaScript verwendest, ist es genauso einfach, ein <select>-Tag zu initialisieren, wie eine Textarea oder ein Input-Feld. Und zwar so:

    HTML-Code:
    <form name="form_bla" ...>
    <select name="select_blub" size="1">
    ...
    </select>
    </form>
    
    <script type="text/javascript">
    <!--
    document.form_bla.select_blub.value = "der wert";
    -->
    </script>
    Ist am elegantesten -- aber wie gesagt, erfordert eben JavaScript. Angeblich haben manche Leute ja was dagegen, obwohl JavaScript heutzutage Common Sense ist.

    -Gawayn
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.10.09, 16:31
  2. selected="selected" nicht im IE6 ?
    Von megatom im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 05.06.07, 13:58
  3. [Oracle] Meldung "no rows selected" ersetzen
    Von m3000 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 08.05.06, 08:44
  4. Antworten: 15
    Letzter Beitrag: 19.02.06, 11:23
  5. Steuerelement als "selected" setzen? Selektion aufheben?
    Von daDom im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 16.03.04, 17:48