Manuální render formuláře, snippet a table
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kralik
- Člen | 230
Ahoj všichni,
prosím o pomoc.
Nějak jsem se ocitl v koutě při vykreslování formuláře.
Potřeboval bych vykreslit formulář přes {form formAdd} …
{/form} tak aby byl reprezentovaný formou tabulky.
Použiji-li control, níže, tak vše je ok a s tagy tabulky.
<?php
{control formAdd}
?>
Ale jak toho mohu docílit, pokud potřebuji použít snippety v řešení DependencySelectBox, který funguje skvěle: https://blog.nette.org/…-and-pure-js
Potřeboval bych níže uvedený formulář nějakým způsobem vykreslit s pomocí tagů tabulky.
<?php
{form formAdd}
{label zadavatel /} {input zadavatel}
{label nalezce /} {input nalezce}
{label sektor /} {input sektor}
{snippet linkaSnippet}
{label linka /} {input linka}
{snippet pracSnippet}
{label pracoviste /} {input pracoviste}
{/snippet}
{include #js}
{/snippet}
{label rizikopopis /} {input rizikopopis}
{label zdrojrizika /} {input zdrojrizika}
{label riziko /} {input riziko}
{label ergoriziko /} {input ergoriziko}
{label next /} {input next}
{input ok}
{/form}
?>
Mooc díky
Editoval kralik (3. 11. 2014 14:16)
- kralik
- Člen | 230
Tak jsem zkusil n:snippet, ale nějak špatně.
Níže ve formuláři se mi snippet A překreslí, ale snippet B, ne.
Problém je ten že snippet B potřebuji mít ve snippetu A.
Prosím lze to nějak udělat?
Díky
Form
<?php
{form formAdd}
<table class="form">
<tr class="required">
<th class="w100">{label zadavatel /}</th>
<td>{input zadavatel}</td>
</tr>
<tr class="required">
<th class="w100">{label nalezce /}</th>
<td>{input nalezce}</td>
</tr>
<tr class="required">
<th class="w100">{label sektor /}</th>
<td>{input sektor}</td>
</tr>
<tr n:snippet="A" class="required">
<th class="w100">{label linka /}</th>
<td>{input linka}</td>
</tr>
<tr n:snippet="B" class="required">
<th class="w100">{label pracoviste /}</th>
<td>{input pracoviste}</td>
</tr>
{include #js}
<tr class="required">
<th class="w100">{label prilet /}</th>
<td>{input prilet}</td>
</tr>
<tr class="required">
<th class="w100">{label rizikopopis /}</th>
<td>{input rizikopopis}</td>
</tr>
<tr class="required">
<th class="w100">{label zdrojrizika /}</th>
<td>{input zdrojrizika}</td>
</tr>
<tr class="required">
<th class="w100">{label riziko /}</th>
<td>{input riziko}</td>
</tr>
<tr class="required">
<th class="w100">{label ergoriziko /}</th>
<td>{input ergoriziko}</td>
</tr>
<tr class="required">
<th class="w100">{label next /}</th>
<td>{input next}</td>
</tr>
{input ok}
</table>
{/form}
{define #js}
<script type="text/javascript">
{include #jsCallback, input => sektor, link => linkaChange}
{include #jsCallback, input => linka, link => pracChange}
</script>
{/define}
{define #jsCallback}
$('#{$control["formAdd"][$input]->htmlId}').on('change', function() {
$.nette.ajax({
type: 'GET',
url: '{link {$link}!}',
data: {
'value': $(this).val(),
}
});
});
{/define}
?>