Poslání value do dalšího do view bez formuláře
- Shoxy
- Člen | 37
Dobrý den,
Chtěl bych se zeptat zda se dá poslat value ze <select> do dalšího
view bez toho abych to celé měl odeslané ve formuláři.
Vím, že se dá předat value jako parametr při ->redirect avšak nevím
jak tu hodnotu již získat a předat do redirectu ze selectu
Latte
{block content}
<div id="selects_admin_warpp">
<select data-url="{link SearchAdmin!}" id="select_shift">
<option value="" disabled selected>Směna</option>
<option n:foreach="$shifts as $shift" value="{$shift->shiftID}">
{$shift->shiftName}
</option>
</select>
<select n:snippet="SnippetAdmin" class="select_admin" style="display:none"> // Hodnota kterou chci předat do dalšího pohledu
<option value="" disabled selected>Admin</option>
{ifset $getAdmins}
<option data-username="{$admin->AdminkyID}" n:foreach="$getAdmins as $admin" name="Admin" value="{$admin->AdminkyID}">
{$admin->AdminkyName} {$admin->AdminkySurname}
</option>
{/ifset}
</select>
</div>
<table rules="all" id="data-table" >
<thead>
<tr>
<td>ID</td>
<td>Datum</td>
<td>Ridič</td>
<td>Cesta</td>
<td>Návěs</td>
<td></td>
</tr>
</thead>
{foreach $databaseData as $array}
<thead class="obal">
<tr class="thr">
<td>{$array[0]}</td>
<td>{$array[1]|date:'%d.%m.%Y | %H:%M'}</td>
<td>{$array[2]}</td>
<td>{$array[3]}</td>
<td>{$array[4]}</td>
<td></td>
</tr>
<tbody class="detail-container">
{foreach $array[6] as $data}
{first}
<tr>
<td colspan="5">Název dodavatele</td>
<td>Palet</td>
</tr>
{/first}
{if $iterator->isOdd()}
<tr>
<td colspan="5">{$data}</td>
{else}
<td>{$data}</td>
</tr>
{/if}
{/foreach}
<tr>
<td colspan="5" align="right">Celkem:</td>
<td style="color:red;">{$array[5]}</td>
</tr>
<tr>
<td class="print-td" colspan="6"><a class="btn-primary" n:href="Print:print $array[0]">Tisk</a></td> // zde je tlačítko pro přesměrování na další view
</tr>
</tbody>
</thead>
{/foreach}
</table>
`
<script>
$( "#select_shift" ).change(function() {
var value = $(this).val();
if($(this).next().css("display")=="none"){
$(this).next().css("display","block");
}
$.nette.ajax({
'url': $(this).data('url'),
'async':false,
'data': {
shiftID: value,
}
});
});
$( ".obal" ).click(function() {
$(".detail-container").hide();
$(this).next().show();
});
</script>
`
Děkuji.
Editoval Shoxy (19. 4. 2018 10:12)
- Shoxy
- Člen | 37
Tyraxor napsal(a):
Ahoj,
pokud trváš na tom, že z toho nechceš udělat klasický formulář, tak ti zbývá asi jen javascriptem vytáhnout tu hodnotu ze selectu, dosadit do nějaké předpřipravené URL a přesměrovat na view, který bude tu hodnotu očekávat jako klasický GET parametr.
No kdybych to obalil formulářem jak bych jej poté odesílal, když v něm mám N,linků / redirectů? Vše by poté mělo být vytvořené jako komponenta formuláře v prezenteru ne?
- Tyraxor
- Člen | 31
teď úplně nechápu co se snažíš říct, kód vypadá jako nějaký
filtrovaný výpis, který se dá udělat velice jednoduše (jeden obyčejný
formulář + výpis ve foreachi) nebo taky hodně složitě např. vrstvenýma
komponentama…
Zkus to trochu víc rozepsat nebo sem dát více kodu (presenter + případné
komponenty)
Editoval Tyraxor (19. 4. 2018 14:46)