janaue: Auswahlliste, Aktualisierung JS und PHP

Hallo,
Ich sitze seit Tagen an dem Problem fest, vielleicht kann mir jemand eine Idee geben.
In meiner Datei verwende ich Javascript und PHP um auf eine SQL Datenbank zuzugreifen, dass Problem scheint wie so oft zu sein, dass Javascript clientseitig und PHP serverseitig abläuft. Hier soll nach Auswahl eines Flusses, in diesem Fall der Rhein, eine Liste Flussabschnitte mit den Einträgen des ausgewählten Flusses erscheinen. Im Javascript Teil holt sich die Funktion getFlussabschnitte die ID, also den Flussnamen, der onchange bei der Auswahl des Flusses ermittelt wird. Der Variable flusskuerzel wird entsprechend ein Wert zugewiesen, und dieser dann mit der Auswahlliste der Flussabschnitte verglichen. Entsprechen die ersten drei Buchstaben der Auswahlliste nicht der Variablen flusskuerzel, dann sollen diese eben aus der Liste entfernt werden (options[i]=null) Das Problem ist halt dass trotzdem auch Abschnitte anderer Flüsse in der Liste erscheinen, seltsamerweise jedoch auch nicht alle, wobei ich kein Prinzip erkennen konnte. Wenn man den Fluss wechselt werden weitere Einträge aus der Liste entfernt, allerdings weiß ich auch hier nicht nach welchen Kriterien.
Das komische ist, wenn man z.B. nicht options[i]=null setzt sondern options[i].text=0, dass alle Flussabschnitte die nicht zum ausgewählten gehören auch erkannt werden und mit dem Eintrag 0 in der Liste erscheinen. Warum options[i]=null die nicht einfach aus der Liste löscht ist mir ein Rätsel.
Selbst wenn dies funktionieren würde, wird es bei einem Wechsel des Flusses höchstwahrscheinlich Probleme geben, weil sich die Seite irgendwie aktualisieren müsste. Meine Frage ist jetzt einmal ob jemand eine Ahnung hat, warum es mit options[i]=null nicht so funktioniert wie es sollte und zum anderen wie das Problem generell anders zu lösen sein könnte.
Vielen Dank im Voraus,
Jan

---------------------------------------------------------------------
Javascript

function getFlussabschnitte(id){ //id = Flussname
    var flusskuerzel;    switch (id){
      case "Sieg": flusskuerzel="SEG";break;
      case "Rhein": flusskuerzel="RHE";break;
      //.....

}

if (document.theStoreQueryForm.theQuery.selectedIndex==2){

document.getElementById("td_mehrereAbschnitte").style.display="block";
     for (var i=0; i < document.getElementById("theStyle1").options.length; i++){
       if (document.getElementById("theStyle1").options[i].text.substring(0,3) != flusskuerzel)
          document.getElementById("theStyle1").options[i]=null;
     }
   }

if (document.theStoreQueryForm.theQuery.selectedIndex==1){
     for (var i=0; i < document.getElementById("theStyle").options.length; i++){
        if (document.getElementById("theStyle").options[i].text.substring(0,3) != flusskuerzel)
            document.getElementById("theStyle").options[i]=null;
        }
     document.getElementById("td_einAbschnitt").style.display="block";
     }

}

--------------------------------------------------------

PHP-Code für den Datenbankzugriff:

$query_flussabschnitte = "SELECT NAME, KM_VON FROM FLUSSABSCHNITTE_BB";
      $result_flussabschnitte = odbc_exec($db, $query_flussabschnitte);
      echo "if (document.theStoreQueryForm.theQuery.selectedIndex == 1 && document.theStoreQueryForm.Flussauswahl.selectedIndex > 0){";
      echo "document.getElementById("flussab").style.display = "block" } \n";
      echo "document.writeln('<td id="td_einAbschnitt" style="display:none;" width="20"><select class="storedquery" id="theStyle" name="theStyle">');\n";
          echo "document.writeln('";
    while(odbc_fetch_row($result_flussabschnitte)){
      echo "<option value="".odbc_result($result_flussabschnitte, "KM_VON")."">".odbc_result($result_flussabschnitte, "NAME")."</option>";
      }
      echo "');";
      echo "document.writeln('</select></td>');";

$result_flussabschnitte = odbc_exec($db, $query_flussabschnitte);
      echo "document.writeln('<td id="td_mehrereAbschnitte"      style="display:none;" width="20"><select class="storedquery" id="theStyle1" name="theStyle1" size=6 multiple>');\n";
      echo "document.writeln('";
   while(odbc_fetch_row($result_flussabschnitte)){
      echo "<option value="".odbc_result($result_flussabschnitte, "KM_VON")."">".odbc_result($result_flussabschnitte, "NAME")."</option>";
      }
      echo "');";
      echo "document.writeln('</select></td>');";
      echo "</script>";

  1. Tut mir leid ich blig da net durch, was möchtest Du denn überhaupt machen?

    Mfg Lich7070

    1. Servus,
      mir isses auch ziemlich schwer gefallen das Problem so zu beschreiben, dass es jemand anderes versteht ;)
      Im Grunde genommen will ich eben, dass nach Auswahl eines Eintrags (Fluss)aus der ersten Auswahlliste die zugehörigen Flussabschnitte in der zweiten Auswahlliste erscheinen. Dabei werden alle Einträge aus einer Datenbank ausgelesen. Das ist jetzt halt wieder sehr allgemein ausgedrückt.
      Wahrscheinlich sagt dir das jetzt auch nicht mehr, aber das wäre die Kurzfassung von dem was ich erreichen will...´

      Kann ich irgendwie screenshots hochladen? dann kann man sich die Auswahllisten ein bisschen besser vorstellen....

      MfG Jan