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
+
0
-

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)