Změna pozice dat v tabulce popocí sortable a update v dtb
- unset
- Člen | 16
Ahoj, snažím se vytvořit script na úpravu pozice dat v dtb, pomocí jquery sortable změnu pozice ve výpisové tabulce už mám plně funkční jen se mi nedaří poslání upraveného pořadí do componentypomocí javascriptu.
V souboru admin.js mám:
$(document).ready(function() {
$('#grid tbody').sortable({
revert: true,
handle: '.handle',
update : function () {
$.get("\/sandbox-admin\/www\/admin\/menu\/?do=menuGrid-test", {'order': $("#sortable").sortable("toArray")});
}
});
});
v componentě mám handly:
public function handleTest($order) {
dump($order);
$this->redirect('this');
}
Kde by se mi měli vypsat data odeslané javascriptem ale nedaří se mi to. Nevíte prosím někdo kde by mohla být chyba? Postupoval jsem podle postupů tady na fóru ale bohužel bez úspěch. Děkuji za každou radu.
- unset
- Člen | 16
Upravil jsem to na menuGrid-order ale stále nic.
$(document).ready(function() {
$('#grid tbody').sortable({
revert: true,
handle: '.handle',
update : function () {
$.get("\/sandbox-admin\/www\/admin\/menu\/?do=menuGrid-test", {'menuGrid-order': $("#sortable").sortable("toArray")});
}
});
});
- Jan Mikeš
- Člen | 771
Ahoj, doporucuji si link brat primo ze sablony (z html) pomoci data attributu a nepredavat ho napevno do js.
Inspirovat JS se muzes zde: https://github.com/…orderable.js#L46
je to moje knihovna, kterou pouzivam v projektech na razeni radku v tabulce
v kombinaci s doctrine.
latte u me pak vypada nejak takto:
<table class="orderable" data-orderable-handle="{link reorder!}">
<thead>...</thead>
<tbody>
{foreach $items as $item}
<tr data-orderable-id="{$item->id}">
...
</tr>
{/foreach}
</tbody>
</table>
Presenter:
public function handleReorder()
{
if ($this->isAjax() && $this->request->isMethod("POST")) {
$this->orderableOrganiser->update($entityClass, $this->request->getPost("positions"));
}
$this->terminate();
}
Ber to jako inspiraci.
- unset
- Člen | 16
@Lexi děkuji to je přesně to co jsem hledal! Jen bych se chtěl ještě zptat jestli jsi se setkal už s tím když jsi začal měnit pozici řádku v tabulce, tak jestli se ti všechny buňky začnou floutovat do leva. Jakoby že se všechny „smrsknou“ k sobě a nevypadají stylově stejně jako řádky kolem. Nevím jestli je to pochopitelné z mého popisu :D
- Jan Mikeš
- Člen | 771
@unset setkal, k tomu slouzi prave ta helper funkce pro orderable
var fixHelperModified = function(e, tr) {
var $originals = tr.children();
var $helper = tr.clone();
$helper.children().each(function(index)
{
$(this).width($originals.eq(index).width())
});
return $helper;
};
$("table tbody").sortable({
helper: fixHelperModified
});