Frage zu -Formular

Hallo, ich habe diese Frage zwar auch schon im PHP-Forum gefragt, weil es dort gerade um ging, doch ist mir dann aufgefallen, dass es wohl eher eine html Frage ist :smile:
Also:
Ich will ein Menü haben, in welchem es mehrere s gibt, doch soll es so sein, dass wenn ich einen Punkt bei select-a öffne in select-b nur die Punkte angezeit werden, die das Kriterium wür den in select-a ausgewählten punkt haben.


Beispiel:
select-a: Länder-Auswahl
select-b: Städte-Auswahl
select-c: Straßen-Auswahl

Ich wähle bei select-a ‚Deutschland‘, jetzt werden in select-b nur noch Städte aus D angezeigt und nachdem ich zB Berlin gewählt hab, werden nurnoch die Straßen aus Berlin angezeigt.

Das sollte meine Frage wohl verdeutlicht haben :wink: Sofern das überhaupt direkt was mit php zu tun hat :smile: Wohl eher html, naja, mal schaun :smile:

danke

martin

Hallo,

ja, das wuerde rein mit JavaScript gehen. Ist aber eine Frage der Effizienz. Gerade dann, wenn Du sehr viele Laender, Staedte und Strassen hast. Denn dann sollte man es doch ueber ne Dantenbank machen.

Ansonsten nimmst Du ein Laender-Array. Jedes Element dieses Arrays hat widerum ein Array über die Staedte des Landes. Die Arrays ueber die Staedte eines Landes haben auch Arrays ueber die Strassen diese Staedte des entsprechenden Landes.

Also ein 3fach verschachteltes Array sozusagen. Das erste Element kann meinetwegen der LaenderName und der StadtName als String darstellen. So kannst Du Dich dann durch die Array-Struktur durchhangeln bis Du zu einer Strasse des zuvor ausgewaehlten Laendes und der Stadt in diesem Land gelangst.

SelectBoxen koennen auch ueber Javascript dynamisch recht komfortable online aus dem Array gefuellt werden. Aber das Script dazu ist kein Dreizeiler…

CU

Hi, danke erstmal soweit :smile:

Also das mit den Ländern war nur ein reines Beispiel, ganz so groß soll es bei mir nicht sein. Also wenn du von Arrays redest, denk ich einfachmal, dass du PHP meinst, oder?!?
Hmm, mit Arrays hab ich mich ncoh nciht auseinander gesetzt, wäre dafür wohl noch notwendig :wink:

Hmm… Aber wie mache ich das, dass ich nicht immer auf einen button klicken muss, damit sich, wenn ich was bei -a ausgewählt hab, bei -b nur die mit den a-kriterien erscheinen? oder muss ich das immer irgendwie aktualisieren?

Wie meinst du das mit dem fuellen? Meinst du einfach weitere Einträge hinzu zu fügen?

Danke
martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Du kannst es mit PHP machen, aber ich bin kein grosser Fan davon. PHP ist schon sehr gut, aber eine inkonsequente Technik, die dem Programmierstil und der Elleganz schadet. Perl ist da besser und sauberer.

Aber darauf kommt es nicht an. Vielmehr ist enscheidend wie Du Deine Daten verwaltest. Bei Dir muessen die Daten in aehnlicher Weise verarbeitet werden, wie ein Explorer seine Parent- und Child-Objekte in Baumstruktur organisiert. Die Darstellung ist aber nicht eine Struktur wie ein Baum, sondern eine Darstellung in Select-Boxen.

kannst Du dynamisch mit Javascript fuellen. Das geht auszugsweise so:

var newEntry = new Option(„Value“,„Text“);
with (window.document.idForm) {
idSelect.options[idSelect.options.length] = newEntry;
}

„Value“ ist hier der innere Wert des neu hinzugefuegten Eintrags, also das value-Attribute im -Tag.
„Text“ ist der in der Select-Box angezeigte Text, also das was zwischen und steht.

Geht ausgezeichnet. Habe ich alles schon gemacht und programmiert. Auch mit Rausloeschen von Eintraegen aus der Select-Box sowie dem Sortieren von Eintraegen in der Select-Box nach „Value“ und auch nach „Text“.

CU