Dynamic snippet a nesprávne vykreslovanie šablony
- Andurit
- Člen | 131
Čaute,
pokúšam, sa mazať nejaké veci z DB pomocou AJAXU namiesto PHPcka, zrejme
nič nezvyčajné mám zoznam užívateľov v tabuľke, a chcem zmazať
1 z nich a rád by som aby sa mi nový zoznam prekresil ajaxom bez nutnosti
refreshu.
Môj kód vyzera asi takto:
<div class=„box-content“>
{snippet wholeList}
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
<th>Id</th>
<th>UserName</th>
<th>Query</th>
<th>Daily limit</th>
<th>Total query</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr n:foreach="$users as $user" snippet="itemsContainer">
<td>{$user->userID}</td>
<td class="center">{$user->username}</td>
<td class="center">{$user->query}</td>
<td class="center">{$user->max_query}</td>
<td class="center">{$user->total_query}</td>
<td class="center">
<a class="btn btn-success" n:href="detail $user->userID, $user->username">
<i class="halflings-icon white zoom-in"></i>
</a>
<a class="btn btn-info" href="#">
<i class="halflings-icon white edit"></i>
</a>
<a
data-nette-confirm="modal"
data-nette-confirm-title="Confirm"
data-nette-confirm-text="Are you sure you want to delete user <strong> {$user->username} </strong>?"
data-nette-confirm-ok-class="btn-danger"
data-nette-confirm-ok-text="Yes"
data-nette-confirm-cancel-class="btn-success"
data-nette-confirm-cancel-text="No"
class="btn btn-danger"
data-ajax="on" // or class="ajax"
n:href="delete! $user->userID">
<i class="halflings-icon white trash"></i>
</a>
</td>
</tr>
</tbody>
</table>
{/snippet}
</div>
A presenter:
public function handleDelete($id)
{
$this->facade->deleteById($id);
if ($this->isAjax()) {
$this->invalidateControl('wholeList');
} else {
$this->redirect('this');
}
}
Ak WHOLELIST snippet dám pod <tbody>, načíta sa mi zoznam 2×, 1. V tabulke ako má byť (ten tam asi ostava a nenacita sa uz), 2. uplne mimo tabulky
Ak tento kód použijem , mám dojem, že sa načítata nanovo celý zoznam a celkom určite sa nenačíta napr JSko pre vyhľadávanie v tabuľke a podobne. Predpokladám, že robím nejakú chybu, mohol by mi to niekto vysvetliť?
Editoval Andurit (9. 4. 2015 14:43)
- David Matějka
- Moderator | 6445
nemas tam dynamicky snippet, ty museji mit nazev ve formatu
foo-$id
viz doc
Ak WHOLELIST snippet dám pod <tbody>
to takhle nemuzes, snippet vytvari obalovaci DIV. Ale mohlo by fungovat
namisto makra {snippet}
pouzit n:makro
<tbody n:snippet="wholeList">
- Andurit
- Člen | 131
Asi tomu nerozumiem úplne správne, v mojom prípade by to teda malo vyzerať napr:
n:snippet="item-$user"
pokusil som sa to hodiť do toho <a> kde mám DELETE, neprešlo to tak som skusil obaliť všetko do pod foreachom do 1 SPANU s týmto snippetom, no dostanem error na Array to string conversion.
Na základe tohto som ešte skúsil obaliť všetko nejako takto
{snippet users-$user->userID}
{/snippet}
Tu mám znova problem s duplicitnym vykreslenim, spodná uz vopred vykreslená tabulka a pravdepodobne updatnute vykreslena hordna cast
Editoval Andurit (9. 4. 2015 16:12)