Daniella Fischer: Variable aus selected-Formular-Feld nach php uebergeben

Hallo, Genies dieses Forums,
ich habe auf einer Seite zwei selected Felder: eins wird zu Beginn mit Daten aus einer db gefuellt, das andere ist zu Beginn disabled.
(selected Feld 1: Bundeslaender, selected Feld 2: Orte in den Laendern).
Ich moechte im ersten Feld eine Auswahl treffen (Bundesland), beim Verlassen des Feldes mir das ausgewaehlte Bundesland merken, in die Datenbank gehen, die zugehoerigen Orte raussuchen, die Seite erneut einblenden, im 1. selected Feld natuerlich wieder mein Bundesland sehen, das 2. select-Feld mit den Ergebnissen der Datenbank gefuellt und nicht mehr disabled haben.
Problem ist: wenn ich das 1. Feld verlasse (mit <select name="bundesland" size="1" onchange="javascript: window.location.href='meinskript.php3?bundesland=<? echo $bundesland ?>'"> krieg ich einen leeren String vom Bundesland und einfach das gewaehlte Bundesland nicht raus. Wenn ich andere Formularfelder dieser Seite ausfuelle und den absenden-button druecke, kann ich alles herrlich auslesen und in die Datenbank schreiben. Aber mit onchange/onblur einen gewaehlten Selected-Parameter an das gleiche Skript uebergeben ...
Rettet mich ...

Gruesse
Daniella

  1. (mit <select name="bundesland" size="1" onchange="javascript: window.location.href='meinskript.php3?bundesland=<? echo $bundesland ?>'"> krieg ich einen leeren String vom Bundesland und einfach das gewaehlte Bundesland nicht raus.

    Wundert mich nicht, denn wenn du deine Seite das erste mal lädst erstellt er ein select feld das so aussieht:

    <select name="bundesland" size="1" onchange="javascript: window.location.href='meinskript.php3?bundesland='">

    da die variable $bundesland nicht verwendet wird. wenn du nun eine selektion durchführst wird bundesland=(leer) übergeben. --> kann so nicht funken.

    hier eine mögliche lösung:

    <form name="formname" action="meinskript.php">
    <select name="bundesland" size="1" onchange="javascript:document.formname.submit()"> .... </select>

    </form>

    nun solltest du eine $bundesland variable mit inhalt in deinem skript zur verfügung haben...

    mfg chris

  2. Moin!

    Problem ist: wenn ich das 1. Feld verlasse (mit <select name="bundesland" size="1" onchange="javascript: window.location.href='meinskript.php3?bundesland=<? echo $bundesland ?>'"> krieg ich einen leeren String vom Bundesland und einfach das gewaehlte Bundesland nicht raus.

    Du hast ein Verständnisproblem, wann welche Programmiersprache aktiv ist.

    PHP ist aktiv, wenn die Seite zusammengestellt wird. Dann wird sie zum Browser übertragen, und enthält KEINERLEI PHP-Code mehr, sondern nur noch HTML und Javascript. Im Browser selbst ist dann Javascript aktiv.

    Dein Problem läßt sich lösen - allerdings anders, als du es gerade versuchst.

    Möglichkeit 1 (die am nächsten an deinem Versuch dran ist):
    Du hast das Selectfeld 1, wählst dort ein Bundesland aus und SCHICKST DAS FORMULAR AB. Dann kannst du mit PHP in der Datenbank die passenden Einträge für Selectfeld 2 raussuchen und es erstellen. Hat natürlich den Nachteil, daß du dann ein zweistufiges Formular hast, welches zwischendrin erstmal abgeschickt werden muß. Es wäre unsinnig, dem User bei beiden Stufen die volle Eintragsmöglichkeit in alle anderen Felder zu bieten, sondern das wäre dann eher die Strategie eines Assistenten, der nacheinander mit Erklärungen jeweils Daten abfragt - ähnlich wie ein Windows-Installationsvorgang z.B.

    Möglichkeit 2 (die die Funktionalität bietet, die du wolltest):
    Du fragst schon gleich beim Seitenerstellen die Datenbank nach allen Einträgen des Selectfeldes 2 für alle Bundesländer ab und generierst damit beispielsweise ein Javascript, welches onselect das zweite Selectfeld mit Daten des passenden Bundeslandes füllt. Alternativ könntest du natürlich auch Layer mit verschiedenen Selectfeldern 2 einbauen und nur jeweils das passende Feld anzeigen lassen, nachdem ein Bundesland ausgewählt wurde. Jedenfalls sollte dir klar sein, daß du keinerlei Kommunikation mit dem Server realisieren kannst, nachdem ein Bundesland ausgewählt wurde.

    Ich hoffe, du kannst meinen Erklärungen folgen. :)

    - Sven Rautenberg

  3. Ihr seid genial.
    1. Loesung von chris, im onchange ein submit zu machen probiert - funktioniert traumhaft!
    2. Loesung von sven brachte logisches VERSTAENDNIS  - und die Idee, gleich ALLES auszulesen, ist auch genial!

    Tausend Danke's
    Daniella

    1. Ihr seid genial.

      vielleicht.... ;-)

      1. Loesung von chris, im onchange ein submit zu machen probiert - funktioniert traumhaft!
      2. Loesung von sven brachte logisches VERSTAENDNIS  - und die Idee, gleich ALLES auszulesen, ist auch genial!

      soviel lob auf einmal, wo ist der haken?

      mfg chris

    2. Moin nochmal!

      Ihr seid genial.

      Naja... ja! ;)

      1. Loesung von chris, im onchange ein submit zu machen probiert - funktioniert traumhaft!
      2. Loesung von sven brachte logisches VERSTAENDNIS  - und die Idee, gleich ALLES auszulesen, ist auch genial!

      ...und jetzt hast du ganz viel ENERGIE (des Verstehens) und bastelst dir eine Lösung. :)

      Tausend Danke's

      Bitte, bitte!

      - Sven Rautenberg