Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

dropdown menu

Hallo
Folgendes Problem:
Ich habe 2 DropDown Menüs die sich je nach Auswahl anpassen. DropDown Menu 1 Auswahl ändert DropDown Menu 2 Auswahl. Das funktioniert auch.

Code:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Formular:
Code:                   In Zwischenablage kopieren (nur IE)
2">

Nun möchte ich aber den "namen" des select feldes als Variable kostenkat2[] (nicht kostenkat2, da ich mehrere Abfragen mache und diese danach in eine mysql db einfülle) ändern. Sobald ich das mache funktioniert aber das ganze dynamische Menü nicht mehr.... sorry bin kein scripter darum froh um jeden hinweis

so solte das Formular aussehen:
Code:                   In Zwischenablage kopieren (nur IE)
3">

danke daha
Hier gehts zum Orginal Eintrag "dropdown menu" im Forum

Antworten

Hat nichts mit PHP zutun...

Javascript kommt halt nicht auf ein:

Code:                   In Zwischenablage kopieren (nur IE)
4">

klar.

Anstelle dessen musst du auf das Element

mit get_elements_by_name
http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name

oder auch

get_element_by_id
http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id

zugreifen.


2.

Danke für Dein Feedback, kannst Du das noch für ein JAVA-DAU ausdeutschen?


3.

Also ganz einfach:

Wenn du aus

Code:                   In Zwischenablage kopieren (nur IE)
5">

müsstest du Theoretisch ja aus

Code:                   In Zwischenablage kopieren (nur IE)
6">

machen.

Das geht aber nicht da [ ] ja schon für Arrays vergeben sind.

Daher musst du anstelle von

Code:                   In Zwischenablage kopieren (nur IE)
7">

verwenden.

Was ich grad noch gesehen hab. Du kannst die Funktion auch wie folgt umschreiben

Code:                   In Zwischenablage kopieren (nur IE)
8">

Außerdem solltest du die HTML werte in " oder ' setzen

Code:                   In Zwischenablage kopieren (nur IE)
9">




4.

Danke erstmal!

Hab das so gemacht nun kommt aber folgende Fehlermeldung:
"das objekt unterstützt diese eigenschaft oder methode nicht"

und nu?


5.

Dann poste doch bitte mal deinen aktuellen Quelltext.


6.

hier der code

Code:                   In Zwischenablage kopieren (nur IE)
10">




7.

da hab ich noch einen Nachtrag:

var mykostenkat = document.getElementsByName("kostenkat2[]").selectedIndex; oder
var mykostenkat = document.auswahl.getElementsByName("kostenkat2[]").selectedIndex; hab ich auch versucht, geht trotzdem nicht.

Danke für deine Hilfe, ist fast wie ein Weihnachtsgeschenk!


8.

Zitat:
daha postete
var mykostenkat = document.getElementsByName("kostenkat2[]").selectedIndex;

Es heißt getElementsByName() -> Mehrzahl!

Das Ergebnis ist also kein Objekt, sondern eine Collection (von Objekten), bei der die einzelnen Objekte via [0], [1] ... oder item(0), item(1) ... angesprochen werden.

BTW: Beachte auch besser, daß getElement... (DOM Level 2) erst seit der aktuellen Browsergeneration existiert. Man sollte also sicherheitshalber vorher abfragen, ob der Browser das unterstützt, oder die herkömmliche Syntax (DOM Level 0) verwenden: document.forms["auswahl"].elements["kostenkat2[]"][0].selectedIndex


9.

Zitat:
Varon postete
Anstelle dessen musst du auf das Element

Müssen muß man nicht. Was man muß ist: richtig machen! ;)


10.

ok, das hab ich mal erlickt.
da ich nun mehrer Zeilen mit dropdown Menüs habe und den Inhalt jeweils in eine Variable fülle muss ich bei der Abfrage,
document.forms["auswahl"].elements["kostenkat2[]"][0].selectedIndex zuerst wissen in welcher Zeile der Wert des DropDown Menüs geändert hat ["kostenkat2[]"][0] oder ["kostenkat2[]"][1] usw.

mach ich das mit einer schlaufe oder gibts da noch was anderes?

danke erstma!


11.

Zitat:
daha postete
mach ich das mit einer schlaufe oder gibts da noch was anderes?

Ich weiß nicht, was Du warum machen willst, aber das "aktuelle" "Drop-Down-Menü" hast Du bereits: <select onchange="alert(this.selectedIndex);">


12.

du verstehts mich glaubs falsch, hier nochmals den code:
Code:                   In Zwischenablage kopieren (nur IE)
11">

Formular:
Code:                   In Zwischenablage kopieren (nur IE)
12">

Das Formular zeigt 2 Zeilen mit je 2 DropDown Menüs an. Ändere ich nun das erste DropDown Menü (egal welche Zeile) ändert sich nichts. Habe ich nur eine Zeile klappt alles bestens.
Nur wieso??

Danke nochmals!!!!


13.

Zitat:
daha postete
du verstehts mich glaubs falsch,

Fein, dann sind wir ja schon zu zweit. ;)

Zitat:
hier nochmals den code:

PHP-Code ist hier uninteressant. Interessant ist der (ggf. von PHP erzeugte) pure JS-Code.

Davon abgesehen paßt das alles nicht so recht zusammen:

- Die Verwendung von [] im NAME sowie das, was Du bisher geschrieben hast, deutet darauf hin, daß Du mehrere Element mit solchem Namen hast. Wie man mit JS ein einzelnes davon anspricht, wenn mehrere Elemente gleichen Namens existieren, wurde bereits gesagt.
- Du hast Syntaxfehler und Seiten-Code und JS-Code passen gar nicht zusammen (was soll z.B. onchange=showkosten=(this.selectedIndex); umHimmelswillen bedeuten?).
- Und bitte: Umklammere die Attributwerte mit Anführungszeichen.
[/quote]


Hier gehts zum Orginal Eintrag "dropdown menu" im Forum
 
phpforum.de | Impressum | Handy Bundles