Select a options data-attributy
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- flexroad
- Člen | 117
Ahoj,
Potrebuji v nette forms vygenerovat neco takoveho:
<select id="country-select" name="country">
<option data-lat="53.412910" data-lon="-8.000000" data-zoom="6" value="102">Czech Republic</option>
<option data-lat="53.094024" data-lon="-1.768799" data-zoom="5" value="77">Slovakia</option>
</select>
Select pridavam do formulare klasicky takto:
$countries = array(
"102" => "Czech Republic",
"77" => "Slovakia"
);
$form->addSelect('country', 'Country', $countries);
Poradi nekdo jak tam dostat ty data-* parametry?
Diky,
@flexroad
Editoval flexroad (15. 4. 2015 13:26)
- David Matějka
- Moderator | 6445
melo by jit:
$contries = array(
102 => \Nette\Utils\Html::el()->setText('Czech republic')->data('lon', ...)->data('lat', ...),
)
- _Martin_
- Generous Backer | 679
Kdybych se chtěl vyhnout té práci s HTML v presenteru, nešlo by to udělat přes ruční vykreslování? Myslím něco na způsob následujícího, ale dotáhnout to propojení (např. atribut disabled,…).
<select name="{$form[country]->htmlName}" id="{$form[country]->htmlId}">
<option n:if="$form[country]->prompt" value="">{$form[country]->prompt}</option>
<option n:foreach="$form[country]->items as $key => $label" value="{$key}" data-lat="{$countryData[$key]->lat}" data-lon="{$countryData[$key]->lon}">{$label}</option>
</select>