dichti: Element mit PHP auslesen

Beitrag lesen

Ajax wäre wie auch von Norbert schon geschrieben eine Variante, um das zu lösen. Die zweite wäre, von vornherein sämtliche Daten aus der Tabelle products auszulesen, aber anstatt in das <select>-Feld in einen Javascript-Abschnitt zu legen, von wo aus sie bei Bedarf in Dein verkaufprodname-<select> kopiert werden. Die dritte wäre, alle Daten in das <select>-Feld zu legen und per Javascript nur zum jeweils ersten Produkt zu springen (d.h. selected-Attribut des ersten passenden <option> zu setzen).

Variante 3 hat den Vorteil, auch ohne Javascript zu funktionieren, was mir persönlich immer am liebsten ist. Der Komfort, bei Auswahl einer Marke die dazugehörigen Produkte angezeigt zu bekommen, ist dann ein zusätzlicher Pluspunkt, aber kein Zwang.

Variante 2 ist am weitesten verbeitete Weg, Deine Aufgabenstellung zu lösen, aber ohne Javascript bleibt der Besucher im Gegensatz zu Variante 3 im Regen stehen. Der Vorteil gegenüber Variante 3 ist, je nach Produktanzahl, dass die Auswahlliste nicht extrem lang wird. Wenn so viele Produkte in der Liste stehen, dass der Schiebebalken nur noch ein winziger Knopf ist, verliert er seine Brauchbarkeit.

Nachteil sowohl von 2 und 3 kann sein, dass bei einer sehr großen Anzahl von Produkten der Umfang der zu übertragenden Seite entsprechend riesig wird. Ob die Produkte nun direkt in <select> stehen (Variante 3) oder als Feld in der Funktion prodname() (Variante 2), ist dabei unerheblich, es müssen beim Seitenabruf immer alle Produkte übertragen werden.

Und da wäre dann auch der einzige Vorteil von Variante 1, der Verwendung von Ajax: Es werden nur die Produkte übertragen, die auch tatsächlich benötigt werden. Nachteil ist, mal abgesehen vom Javascript-Zwang, dass die Produktübertragung erst beim Markenwechsel passiert. Das Formular reagiert also etwas später als bei den beiden anderen Varianten, wo alle Produkte schon im Browser vorliegen.
Ich würde Ajax deshalb wirklich nur da einsetzen, wo es um viele hundert oder gar tausende Produkte geht. Bereits übertragene Produktlisten müssten auch unbedingt zwischengespeichert werden, damit nicht bei jedem Wechsel von Grundig nach Blaupunkt und zurück nach Grundig wieder die Grundig-Produkte vom Server geholt werden müssen.

Tipp zum Schluss: Die Javascript-Bibliothek prototype bietet einige nützliche Funktionen, sowohl was den Zugriff auf HTML-Elemente angeht als auch insbesondere Ajax.

Danke dir für die genau Beschreibung.. Ich probiers mal mit dem Vorschlag von Norbert.
Kann ich mich gleich ein bisschen in AJAX und JS einleben und ein bisschen was probieren. Das würde ja dann eigentlich dem 3. Vorschlag deiner seits passen.

Gruss Dichti