Dropdown-Auswahl wird nicht in MySQL-DB übernommen

  • Hallo zusammen,

    bin neu hier im Forum und hoffe auf eure Hilfe.

    Bei der Registrierung auf meiner Internetseite (noch in der Entwicklung) kann man in mehreren Dropdown-Menus etwa sein Geburtsdatum auswählen. Die Daten werden dann in einer MySQL-DB abgelegt. Das funktioniert prima bei IE und Safari, leider aber nicht bei Firefox (nutze zum testen die version 3.06).
    Da der FF aber immer beliebter wird, möchte ich deren Nutzer nicht von meiner Seite ausschließen :P . ach ja, die option- und select-tags schließen beide wieder und ich nutze xml als markup-language.

    danke für eure hilfe
    gruß matthias

  • Welche Technologie nutzt du auf dem Server?
    Schau dir doch einfach mal an, was auf dem Server ankommt.
    Wenn du unmittelbare Hilfe willst, solltest du Beispielcode zur Verfügung stellen.

  • auf dem (xampp-)server nimmt PHP die daten entgegen und schreibt sie in die DB.

    hier erstmal der code:

    anmerkung: der php-code stimmt, wo im posting die 0 steht, wird die DB-Verbindung hergestellt, keine ahnung, warum das hier fehlt.
    auf jeden fall ist mir folgendes aufgefallen. die inhalte der dropdown-liste "geschlecht" werden per hand ausgegeben, die bei der kontaktperson dagegen von PHP/MySQL. Firefox übernimmt das geschlecht ordnungsgemäß in die DB, möglicherweise liegt es also daran, dass die dropdown-inhalte von PHP dargestellt werden!?

  • Du solltest zunächst deine Sprache ordnen.

    Zitat

    Die Daten werden dann in einer MySQL-DB abgelegt. Das funktioniert prima bei IE und Safari, leider aber nicht bei Firefox (nutze zum testen die version 3.06).

    Zitat

    Firefox übernimmt das geschlecht ordnungsgemäß in die DB

    Firefox ist dein Browser, der übernimmt gar nichts in eine DB. Die DB liegt zusammen mit dem PHP-Code auf dem Server.

    Der Weg ist also Server -> Client -> Server. Wo hakt es denn jetzt?
    Dein PHP-Code nimmt vom Fx gesendete Daten nach dem Abschicken des Formulars entgegen. Stimmen diese Werte? Lass sie dir anzeigen und prüfe das.
    Wenn es dir um den Aufbau des HTML-Formulars geht, dann ist der dafür verantwortliche PHP-Code interessant, gleichzeitig auch das Endergebnis, also das Formular, dass im Browser ankommt.

    Wenn du Code hier im Forum veröffentlichen willst, dann deaktiviere Smilies und HTML-Code.

  • ok hier nochmal der ganze code


    das problem ist: unter firefox werden die dropdown-inhalte zwar dargestellt und man kann auch eine auswahl treffen. diese auswahl wird dann von PHP aber nicht in die DB übernommen. die entsprechenden DB-felder bleiben dann einfach leer oder es wird (z.B. bei "kontaktperson") irgendein nachname eingetragen, aber nicht der, den man im formular ausgewählt hat.

  • Ich glaube nicht, das das valides HTML erzeugt. Bei Tag, Monat und Jahr sind jeweils abschließende </option>-Tags vor den abschließenden</select>-Tags, die vorher nicht geöffnet wurden.

    Und außerdem fehlt imho ein Gleichheitszeichen nach value in den <option>-Tags, die du per PHP ausgibst.

    Z.B. das hier

    Code
    echo "<option value\"".$jahr."\">".$jahr."</option>";

    sollte doch eher so aussehen

    Code
    echo "<option value=\"".$jahr."\">".$jahr."</option>";
  • Das schein so ein Grenzfall mit standarkonformen Verhalten zu sein. Wenn bei einer Option kein Value-Attribut angegeben ist, wird der Wert zwischen den Option-Tags übergeben, was die anderen Browser offensichtlich gemacht haben, FF aber scheinbar nicht.

    Da die Ausgabe bei dir in etwa so ausgesehen haben müßte:

    Code
    <option value"Müller">Müller</option>

    vermute ich, das IE, Opera etc. das Value-Attribut gar nicht erkannt und es als unbekanntes Attribut ignoriert haben und deshalb den Inhalt des Option-Tags genommen haben. FF hingegen scheint das Value-Attribut erkannt zu haben, hat aber wegen des fehlenden Gleichheitszeichens den Wert als undefiniert angenommen.

    Das zeigt einmal mehr, warum man sich bemühen sollte, validen Code zu erzeugen.