WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Problem den richtigen Index zufinden (Java,) (http://www.wcm.at/forum/showthread.php?t=183917)

spöppi 25.01.2006 12:45

Problem den richtigen Index zufinden (Java,)
 
Hallo Leute,

Ich habe drei Pulldown Felder die voneinander abhängig sind
Die ersten beiden gehen beim dritten brauche ich eure Hielfe.

Pulldown 1 (Typ): wir aus einer mysql Tabelle gefühlt z.B. (Typ 1 , Typ 2)

Pulldown 2 (Karte): Mittels PHP werden Array passen zu den Typen erzeugt
z.B arrKarte[0]=new Array("choose...","Karte 1","Karte 2","..."); arrKarte_id[0]=new Array("0","1","2","...");
arrKarte[1]=new Array("choose...","Karte 1","..."); arrKarte_id[1]=new Array("0","3","...")

wenn ich im Pulldown 1 Typ1 wähle zeigt er im Pulldown 2 Karte1 und Karte2 das funktioniert auch

Hier der passende Code dazu.

Quellcode:

function typ_karte()

{
// Liest den Index aus und zieht eins ab um damit direkt auf das Array zugreifen zu können
var iSelectedIndex=self.document.forms[0].typ_id.selectedIndex-1;
// Legt die Anzahl der Options fest - 1 wegen ,-Problem
self.document.forms[0].karte.options.length=arrKarte[iSelectedIndex].length-1;
for (var iCnt=0; iCnt<(arrKarte[iSelectedIndex].length-1); iCnt+=1)
{
// Value aus dem Array auslesen und in die Select-Box einfügen
self.document.forms[0].karte.options[iCnt].value=arrKarte_id[iSelectedIndex][iCnt];
self.document.forms[0].karte.options[iCnt].text=arrKarte[iSelectedIndex][iCnt];
}
}




Pulldown 3 Port: soll jetzt je nach dem welche Karte ausgewählt ist unterschiedlcihe Ports anzeigen.

dazu habe ich die Ports wieder in eine Array gelesen.

arrPort[0]=new Array("0","1","..."); arrPort_id[0]=new Array("1","2","...");
arrPort[1]=new Array("0","1","2","3","..."); arrPort_id[1]=new Array("15","16","17","19","...");
arrPort[2]=new Array("0","1","..."); arrPort_id[2]=new Array("3","4","...");

arrPort[0] gehört zu Karte 1 Typ1
arrPort[1] gehört zu Karte 2 Typ1
arrPort[2] gehört zu Karte 1 Typ2

Wenn ich Typ 1 wähle dann stimmt alles egal welche karte ich nehem ich bekomme dich richtigen Ports.
Nur bei Typ 2 bekomme ich auch die Ports von Typ 1
Das Probelm ist ziemlich sicher das er den Index nicht richtig zählt Karte1 von Typ1 hat auch den gleichen Index wie Karte 1 von Typ2.
Nur was und vorallem wie mache ich was dagegen.

Dazu noch den Code

Quellcode:

function typ_port()

{

// Liest den Index aus und zieht eins ab um damit direkt auf das Array zugreifen zu können
var iSelectedIndex=self.document.forms[0].karte.selectedIndex-1;
// Legt die Anzahl der Options fest - 1 wegen ,-Problem
self.document.forms[0].port.options.length=arrPort[iSelectedIndex].length-1;

for (var iCnt=0; iCnt<(arrPort[iSelectedIndex].length-1); iCnt+=1)
{
// Value aus dem Array auslesen und in die Select-Box einfügen
self.document.forms[0].port.options[iCnt].value=arrPort_id[iSelectedIndex][iCnt];
self.document.forms[0].port.options[iCnt].text=arrPort[iSelectedIndex][iCnt];
}
}




Besten Dank

jak 25.01.2006 17:40

1. JavaScript != Java.
2. Wenn du dir die Daten sowieso mit php aus einer Datenbank holst, wieso schreibst du dann nicht auch die <select> Felder mit php?
also etwas wie:
Code:

echo "<select>"
Schleife {
  echo "<option value=""> text </option>;"
}
echo "</select>";

3. Es gibt [ code ] [ /code ], damit bleiben die Leerzeichen im Quelltext erhalten. Damit wird's lesbarer.

jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag