[1.15] form_taglib_select::setOption2Selected()

Das Forum ist für das Melden von Bugs gedacht. // This forum is intended to report bugs with the APF.
Gesperrt
Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

[1.15] form_taglib_select::setOption2Selected()

Beitrag von dr.e. » 27.02.2012, 22:58:24

Hallo zusammen,

bei einem Test ist aufgefallen, dass die Methode form_taglib_select::setOption2Selected() fehlerhaft die Optionen vorselektiert. Dies ist bei dynamischen Formularfeldern mit folgender Konstellation der Fall:

Template:

Code: Alles auswählen

<form:select ... name="uda-salutation">
   <select:option value=""></select:option>
</form:select>


Controller:

Code: Alles auswählen

$titles = $valueResolver->getTitleList();
foreach ($titles->getValueNames() as $key) {
   $title->addOption($titles->getValue($key), $key);
} 
Effektiv erzeugt dieser Code folgendes HTML:

Code: Alles auswählen

<select name="uda-salutation">
   <option value=""></option>
   <option value="1">Mrs.</option>
   <option value="2">Mr.</option>
   <option value="3">Ms.</option>
</select>
Sofern ich aus einer Schnittstelle den Wert "0" (=Ziffer bzw. Text) erhalte und ein

Code: Alles auswählen

$salutation->setOption2Selected($masterInfo->getSalutation()); 
ausführe, wird mir automatisch die letzte Option als selektiert markiert, da der Vergleich

Code: Alles auswählen

$this->__Children[$objectId]->getContent() == $displayNameOrValue
automatisch zu true evaluiert. Grund: für PHP ist "Mrs." == "0" einfach true. Um dies zu umgehen habe ich einen string-basierten Vergleich eingeführt.
Viele Grüße,
Christian

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast