Az alábbi select elemet akarom hook_form_alter()-ban hozzáadni egy form-hoz:
<select> <option value="1">Volvo</option> <option value="2">Saab</option> <option value="1">Mercedes</option> <option value="1">Audi</option> </select>
A gond ott van, hogy a FORM API szerinte az '#options' értéke egy tömb. Viszont olyan tömböt nem tudok (tudtommal) létrehozni, ahol több elemnek ugyanaz az indexe.
Leginkább ez a forma közelítette meg a célt, de ennek vannak "hibái":
'#options' => array(array('1' => 'Volvo'), array('2' => 'Saab'), array('1' => 'Mercedes', array('1' => 'Audi')), Ez így néz ki a renderelés után: <select> <optgroup label="0"> <option value="1">Volvo</option> </optgroup> <optgroup label="1"> <option value="2">Saab</option> </optgroup> <optgroup label="2"> <option value="1">Mercedes</option> </optgroup> <optgroup label="3"> <option value="1">Audi</option> </optgroup> </select>
Ugye itt azzal van a gond, hogy megjelenik a 1-3-ig számozás...
Valakinek van ötlete?
(A nem túl elegáns megoldás, de legvégső esetben egy #markup-ba beleteszem a html forráskódot...)
Drupal verzió:
Fórum:
Ennek így semmi értelme nincs
tekintve, hogy a form api a keyekkel dolgozik, és nem a valueval. Belehekkelni a form építésébe teljesen felesleges és nem sok jó fog kisülni belőle.
Azonban form_validateben már bármit lehet csinálni az adatokkal, tehát akár form_set_value-val új értéket is adhatsz, ha mondjuk a form_state['values']['ootoomezoeerteke'] > 1.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Szerintem generálj
egy random értéket a value-ba így minden value egyedi lesz, pl. így fog kinézni a form kimeneted:
A submit függvényben pedig megszabadulsz a random számoktól egy ciklusban: