Keine gute Idee:
Code: Alles auswählen
$oSelObject = cHTMLSelectElement("foo");
...
$oSelObject irgendwie füllen, z.B. mit ->autofill
...
$oSelObjectA = $oSelObject;
$oSelObjectA->machwasmitdemObjekt;
$oSelObjectB = $oSelObject;
$oSelObjectB->machwasanderesmitdemObjekt;
Mit PHP5 geht das nicht mehr: $oSelObject, $oSelObjectA und $oSelObjectB sind eins.
Mögliche Lösung:
Code: Alles auswählen
$oSelObjectA = clone $oSelObject;
$oSelObjectB = clone $oSelObject;
Stellen wir uns also dumm und lassen PHP arbeiten:
Code: Alles auswählen
$oSelObjectA = new cHTMLSelectElement("selObjectA");
$oSelObjectB = new cHTMLSelectElement("selObjectB");
...
Das jeweilige $oSelObjectX füllen und zwar mit:
$oOption = new cHTMLOptionElement($Beschriftung, $id);
$oSelObjectA->addOptionElement($id, $oOption);
$oSelObjectB->addOptionElement($id, $oOption);
...
$oSelObjectA->setDefault("EineID");
$oSelObjectB->setDefault("EineAndereID");
Ist natürlich auch logisch... $oOption enthält nur eine Referenz, auf ein Option-Element, da ja $oOption = new cHTMLOptionElement ($Beschriftung, $id);
Und das hat zur Folge, dass die setDefault-Methode durch die gleiche Parameter-Liste wandert und das gleiche Element auswählt; für beide Boxen...
Wer sich also wundert, so würde es dann gehen:
Code: Alles auswählen
$oSelObjectA = new cHTMLSelectElement("selObjectA");
$oSelObjectB = new cHTMLSelectElement("selObjectB");
...
Das jeweilige $oSelObjectX füllen und zwar mit:
$oOptionA = new cHTMLOptionElement($Beschriftung, $id);
$oOptionB = new cHTMLOptionElement($Beschriftung, $id);
$oSelObjectA->addOptionElement($id, $oOptionA);
$oSelObjectB->addOptionElement($id, $oOptionB);
...
$oSelObjectA->setDefault("EineID");
$oSelObjectB->setDefault("EineAndereID");

Gruß
HerrB