addRadioList – manulani vykresleni

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
turbo80
Člen | 50
+
0
-

Ahoj Vsem, potrebuji poradi ve formu mam RadioList a potrebuji to cele ostylovat, ale vubec se mi nedari jak na to. Muzete mi prosim poradit.Moc dekuji v soucasne dobe jsou hodnoty($polozky) vlozeny do pole, casem se polozky budou generovat z database(modelTarify) do componentu, ale take hodnoty v html jsou vlozene do html rucne(hodnota 1.0,…) tak se to bude naciatat z database(modelTarify)>vsem moc dekuji za rady…

<?php
$polozky = array('lite'=>'lite','basic'=>'basic','profi'=>'profi','mega'=>'mega',);

$form->addRadioList("varianta",'',$polozky);


?>

Potrebuji tento vystup

<label class="order-box__item clearfix" for="variant1">
    <input name="varianta" id="variant1" value="lite" type="radio">
       <div class="order-box__template order-box__template--first clearfix">
       	<span class="order-box__item__check"></span>
       	<span class="order-box__item__title">Lite</span>
       	<span class="order-box__item__col order-box__item__col--first">hodnota 1.0</span>
       	<span class="order-box__item__col">hodnota 1.1</span>
       	<span class="order-box__item__col">hodnota 1.2</span>
       	<span class="order-box__item__col order-box__item__col--price">
          <span id="p-mini-vat">1</span> Kč s DPH</span>
          <strong class="order-box__item__col"><span id="p-mini">1</span> Kč/měsíc</strong>
      </div>
</label>
<label class="order-box__item clearfix" for="variant2">
   <input name="varianta" id="variant2" value="basic" type="radio">
     <div class="order-box__template clearfix">
       <span class="order-box__item__check"></span>
       <span class="order-box__item__title">Basic</span>
       <span class="order-box__item__col order-box__item__col--first">hodnota 2.0</span>
       <span class="order-box__item__col">hodnota 2.1</span>
       <span class="order-box__item__col">hodnota 2.2</span>
       <span class="order-box__item__col order-box__item__col--price">
			<span id="p-lite-vat">2</span> Kč s DPH</span>
            <strong class="order-box__item__col"><span id="p-lite">2</span> Kč/měsíc</strong>
    </div>
</label>
koren
Člen | 59
+
0
-

Položky Radiolistu můžeš vypsat pomocí partial rendering. Konkrétně pro tvůj případ bude fungovat kód níže.

Nevím jak ti tam má fungovat ten systém číslování, tak jsem tam dal counter. To může být trochu tricky, kdybys měnil pořadí těch položek. Tak si to kdyžtak změň jak potřebuješ.

{form someForm}

	{foreach $form['varianta']->items as $key => $label}

		{label varianta:$key, class=>'order-box__item clearfix'}
		   {input varianta:$key}
		   <div class="order-box__template order-box__template--first clearfix">
			<span class="order-box__item__check"></span>
			<span class="order-box__item__title">Lite</span>
			<span class="order-box__item__col order-box__item__col--first">hodnota {$iterator->counter}.0</span>
			<span class="order-box__item__col">hodnota {$iterator->counter}.1</span>
			<span class="order-box__item__col">hodnota {$iterator->counter}.2</span>
			<span class="order-box__item__col order-box__item__col--price">
			  <span id="p-mini-vat">{$iterator->counter}</span> Kč s DPH</span>
			  <strong class="order-box__item__col"><span id="p-mini">{$iterator->counter}</span> Kč/měsíc</strong>
		  </div>
		{/label}

	{/foreach}

{/form}

// EDIT: upraveno podle Davida níže

Editoval koren (14. 10. 2015 19:18)

David Matějka
Moderator | 6445
+
+2
-

Partial rendering radiolistu (a treba i checkbox listu) se resi nasledovne

{form someForm}

    {foreach $form['varianta']->items as $key => $label}
		{label varianta:$key}
			{input varianta:$key}
		{/label}
	{/foreach}
{/form}

prip. pouzit n: makra <label n:name="varianta:$key"> a analogicky u inputu