Radiolist – více hodnot pro danou položku
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Radkos
- Člen | 62
Ahoj,
dělám na vlastním eshopu a potřeboval bych vypsat do radioListu způsoby
dopravy a platby. Všechny způsoby jsou uloženy v databázi, jenže třeba
doručení poštou nebo dobírka něco stojí, dále pak informace, kdy bude
zboží doručeno, proto bych do každého inputu potřeboval přiřadit více
informací, než je „value“ a „label“.
Zatím to mám takto:
Presenter:
protected function createComponentDeliveryAndPaymentMethods(){
$form = new Form;
$deliveryMethods = [];
foreach($this->orders->getDeliveryMethods() as $method){
$deliveryMethods[$method->id] = $method->methodName; //zde bych ještě potřeboval přidat někde methodPrice apod.
}
$form->addRadioList('deliveryMethods', 'Způsob dodání:', $deliveryMethods);
$form->addSubmit('deliveryAndPaymentMethodsSubmit', 'Pokračovat v objednávce')
->setAttribute('class', 'ui-button ui-widget ui-corner-all');
$form->onSuccess[] = [$this, 'deliveryAndPaymentMethodsSucceeded'];
return $form;
}
A šablona
<form n:name="deliveryAndPaymentMethods">
Způsob dodání <br>
{foreach $form[deliveryMethods]->items as $id => $method}
<label n:name="deliveryMethods:$id"><input n:name="deliveryMethods:$id"> {$method}</label>
Tady by se hodilo ještě vložit nějakou proměnnou s cenou (mohl bych ji přidat už v presenteru do labelu,
ale to bych pak s ní nemohl dále pracovat, kdybych ji potřeboval vložit někde jinde kvůli desingu)
<br>
{/foreach}
<input n:name="deliveryAndPaymentMethodsSubmit">
</form>
Určitě by to šlo udělat i jiným způsobem, proto budu rád za jakékoliv rady.
Editoval Radkos (25. 9. 2017 16:42)