Michael: Wie kann man Optgroups mit Javascript erstellen?

Guten Tag,
Ich habe zwei Drop-Down-Menüs, die abhängig voneinander sind. Soweit klappt das auch. Jetzt will ich aber bei function update_auswahl()(Javascript) nicht nur, dass neue Einträge(Options) in das 2. Drop-Down-Menü geschrieben werden, sondern auch Optgroups in der jeweils die Uhrzeit steht, die es aus &uhrzeit_d nimmt.

Mit dem Code von unten sieht es dann so z.B. aus:
16:30 Dortmund - Schalke

Da ich nachher, aber nur das angeklickte Spiel (ohne Uhrzeit) auslesen will, würd ich es gerne per Optgroup so haben.

16:30
   Dortmund - Schalke

<?php
foreach ($spiele as $key => $element) {
  $element = trim($element);
  $uhrzeit_d[$key] = trim($uhrzeit_d[$key]);
  $a='"';
echo "spieleAuswahl.options[{$key}] = new Option({$a}{$uhrzeit_d[$key]} {$element}{$a});<br />\n";
}
?>

Ich hab schon "new Optgroup" und ähnliches probiert, klappt aber alles nicht.

Ich wäre euch sehr dankbar für Antworten!

Danke

Michael

  1. Hallo,

    Jetzt will ich aber bei function update_auswahl()(Javascript) nicht nur, dass neue Einträge(Options) in das 2. Drop-Down-Menü geschrieben werden, sondern auch Optgroups in der jeweils die Uhrzeit steht, die es aus &uhrzeit_d nimmt.

    Wo findet man die function update_auswahl()?

    Mit dem Code von unten sieht es dann so z.B. aus:
    16:30 Dortmund - Schalke
    <?php
    foreach ($spiele as $key => $element) {
      $element = trim($element);
      $uhrzeit_d[$key] = trim($uhrzeit_d[$key]);
      $a='"';
    echo "spieleAuswahl.options[{$key}] = new Option({$a}{$uhrzeit_d[$key]} {$element}{$a});<br />\n";
    }
    ?>

    Wo ist hier JavaScript zu sehen? Das, was das PHP-echo hier ausgibt, kann kein JavaScript sein. Es wäre z.B.:

    spieleAuswahl.options[1] = new Option("16:30 Dortmund - Schalke");<br />

    Das funktioniert, wegen <br>, im Javascript nicht.

    Ein OPTGROUP-Element kannst Du mit document.createElement() erzeugen und dann mit .appendChild() als Child dem SELECT-Element hinzfügen.

    Du wirst dann aber auch die OPTION-Elemente so erzeugen und den OPTGROUPs hinzufügen müssen. Das Einfache Hinzufügen in die options-Collection des SELECTs, wie in http://de.selfhtml.org/javascript/objekte/options.htm#neue_elemente, wird dann nicht mehr funktionieren.

    viele Grüße

    Axel

  2. Hallo Michael,

    <?php
    foreach ($spiele as $key => $element) {
      $element = trim($element);
      $uhrzeit_d[$key] = trim($uhrzeit_d[$key]);
      $a='"';
    echo "spieleAuswahl.options[{$key}] = new Option({$a}{$uhrzeit_d[$key]} {$element}{$a});<br />\n";
    }
    ?>

    Vielleicht ist es auch sinnvoll, erstmal PHP von javascript zu trennen? Vielleicht hilft dir http://tek-tips.com/faqs.cfm?fid=4766?

    Gruß, Frankx