enrico: select: Reload PHP-Datei mit Übergabe des Wertes

Hallo,

ich möchte über PHP drei von einander abhängige Auswahllisten programmieren und hierbei
weitesgehend auf Javascript verzichten, ganz geht es aber ohne Javascript (scheinbar)
doch nicht.

Ich habe meine select-Listen mit "Filter_1" bis "Filter_3" benannt.

Standardgemäss ist zunächst nur die erste Auswahlliste aktiv, beim Anwählen eines
Filterkriteriums dieser Auswahlliste soll die PHP-Datei neu geladen und statt der
Kriterien die zum Kriterium über PHP ermittelte Auswahlmöglichkeiten angezeigt werden.

Beispiel:

+------------------+---+
| Auswahl ?        | V |
+------------------+---+
| Anfangsbuchstabe |
| Genre            |
| FSK              |
+------------------+

Nach dem Auswählen einer Option, hier "Genre":

+------------------+---+
| Action / Drama   | V |
+------------------+---+
| Fantasy          |
| Thriller         |
| Thriller / Drama |
+------------------+

Nach Auswahl eines Genres, um bei diesem Beispiel zu bleiben, wird die Seite wieder neu
geladen und die zweite Auswahlliste mit den Anfangsbuchstaben derjenigen Titel gefüllt
werden, die dem zuvor ausgewählten Genre entsprechen.

...usw...

Mir geht es jetzt aber zunächst nur um die Implementierung der Grundfunktionalität, dass
ich den Reload hinbekomme.

Ich habe mir folgenden Code beim ersten select-Feld überlegt:

<select name="Filter_1"
        onChange="javascript:location.replace ('$PHP_SELF?Filter_1=window.document.getElementByName("Filter_1").value');">

Leider funktioniert er nicht, die Seite wird nicht neu geladen, ich bekomme auf der anderen
Seite aber auch keine Fehlermeldung in Firefox.

Ich denke, dass die Kombination PHP-Code/JS-Code problematisch sein dürfte, aber es muß doch ein
Möglichkeit, beide in Einklang zu bringen.

Ich hoffe, Ihr könnt mich unterstützen :-)

Vorab schon mal vielen lieben Dank hierfür.

Gruß
Enrico

  1. Moin!

    Ich habe mir folgenden Code beim ersten select-Feld überlegt:

    <select name="Filter_1"
            onChange="javascript:location.replace ('$PHP_SELF?Filter_1=window.document.getElementByName("Filter_1").value');">

    Leider funktioniert er nicht, die Seite wird nicht neu geladen, ich bekomme auf der anderen
    Seite aber auch keine Fehlermeldung in Firefox.

    Ich denke, dass die Kombination PHP-Code/JS-Code problematisch sein dürfte, aber es muß doch ein
    Möglichkeit, beide in Einklang zu bringen.

    In der ersten Stufe hast du ein rein clientseitiges Problem, dass du nur mit clientseitigem Code lösen kannst, nämlich Javascript. PHP-Code hat da noch absolut nichts zu suchen.

    Erst in der zweiten Stufe ist dann deine Aufgabe, mit PHP den clientseitigen Code zu generieren, den du benötigst.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Moin ?! ;-)

      Erstmal vielen Dank für Deine rasche Rückantwort.

      Gut, Sven, ich habe jetzt erreicht, dass mir der Wert der Auswahlliste korrekt angezeigt wird,
      dies zunächst nur zu Testzwecken:

      function Wert_zurueckmelden (Auswahlliste)
           {
              Wert = document.getElementsByName(Auswahlliste)[0].value;
              alert (Wert);
           }

      <select name="Filter_1" onChange="javascript:Wert_zurueckmelden('Filter_1');">

      Wie kann ich nun den beabsichtigten Reload einbauen ?

      Gruß
      Enrico

      1. Hallo Sven,

        so klappt es:

        onChange="self.location.replace('dynamicoptionlist.php?Filter_1=' + document.getElementsByName('Filter_1')[0].value);"

        Danke für Deinen Denkanstoß :-)

        Gruß
        enrico