PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Select Box dynamisch erstellen



ironud
29.07.2009, 20:18
Moje

Also der Thread passt eigentlich zu PHP und Js, aber ich denke mein Problem lässt sich mit Js besser lösen.

Ich bin leider noch der totale Js Versager, deswegen hoffe ich auf eure Hilfe ;)

Also ich habe eine Textdatei mit folgendem Inhalt:


--- Musik ---
techno
Hiphop

--- Filme ---
Thriller
Komödie

(die Liste ist natürlich noch viel länger)
Jetzt zieh ich mir das ganze per PHP in ein Array:



$array // Sähe dann so aus
[Musik] => "techno"
[Musik] => "Hiphop"
[Filme] => "Thriller"
[Filme] => "Komödie"Soweit ja kein Problem!

Jetzt habe ich 2 Selectboxen
Einmal um die Kategorie auszuwählen und eine für die Bereiche.

Die zweite select Box soll sich dynamisch ändern, nachdem ich die erste ausgewählt habe.
Also ich wähle in der ersten "Musik" aus und in der zweiten kann ich dann "techno" und "Hiphop" auswählen.

Nach meinem Wissen kann ich das mit PHP nicht realisieren, ohne die Seite zu reloaden. Gibt es möglichst einfaches, kleines und schnelles JS was mir weiterhilft?

Danke schomal

VeN0m
29.07.2009, 20:29
Mir fielen jetzt spontan zwei Möglichkeiten ein (JavaScript)...

- Du machst zwei Selectboxen, die unsichtbar sind (für die Kategorie) + eine für die Auswahl der Kategorie. Das hieße dann, dass zuerst die Selectbox mit der Kategorie "Musik" (z.B.) zu sehen ist und beim ändern der Kategorie wird diese versteckt und die zweite wird aktiv. Das ließe sich mit dem EventHandler onChange bewerkstelligen.

- Du versuchst es mit AJAX. Sobald die Kategorie geändert wird holt sich ein PHP-Script, welches von einem JavaScript die Befehle bekommt die Daten aus der Datenbank, lädt sie erst dann in ein Array und gibt sie aus.
Hieße: PHP (Array mit den Kategorien erstellen und als Selectboxen ausgeben) --> HTML (Darstellung der Selectboxen) --> HTML (Auswahl der Kategorie bzw. Änderung) --> JavaScript (Einen Inline-Request ausführen) --> PHP (empfängt den Request, wertet ihn aus. Heißt: Neues Array erstellen, Selectboxen erzeugen) --> JavaScript (bekommt das Ergebnis von PHP zurück) --> HTML (stellt es dar)...

Wobei ich bei so was einfachem eher zu ersterem tendieren würde, Zeit für ein Beispiel habe ich gerade nicht (Lust auch nicht ^^).
Siehe JavaScript Eventhandler onChange (http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange).

ironud
29.07.2009, 20:42
Naja dann müsste ich aber ziemlich viele select Boxen machen.. es sind ja nicht nur die 2 Kategorien, sondern noch viel mehr (Spiele, Blueray, usw...)

Wird das nicht zu groß / unübersichtlich dann?

VeN0m
29.07.2009, 20:45
Doch, das würden ziemlich viele Select-Boxen, aber eben unsichtbar. AJAX jedoch finde ich nicht sonderlich einfach. Also damit sollte man sich schon etwas beschäftigt haben. Per PHP könntest Du die Selectboxen ziemlich einfach darstellen - Also automatisiert. Musst Du wissen, wird schon klappen. Oder eben Du liest Dich in AJAX ein.
Vielleicht hat ja noch jemand eine andere Idee.

ironud
29.07.2009, 21:00
Hallo.
Also meine select Box sieht so aus:


<form name="jump" action="index.php?q=insert" method="POST">
<select name='select' onChange="location=document.jump.select.options[document.jump.select.selectedIndex].value;" value="GO"></select>
</form>
(Die Options hab ich jetzt rausgelassen)

Das Problem ist, nachdem ich die select Box ändere, springt er auf meine index.php?select=xxx und nicht auf index.php?q=insert&select=xxx

(xxx steht für den ausgewählten Wert)

Was muss ich ändern, damit er das "q=insert" mit übergibt?

danke schonmal