Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Datatables multiselect
Forum PHP.pl > Forum > Gotowe rozwiązania
DNMX
Jak w datatables zrobić, żeby móc zaznaczać wierwsze i po kliknięciu w przycisck wyślij mieć ID tych wierwszy? Przeczytałem całą dokumantację ale znajduję tylko opisy jak zrobić to po stronie UI ale nic na temat, jak obsłużyć po stronie sewera. Samodzielnie skonstruowałem coś takiego:
  1. print('<form action="/?action=bulk" method="POST">');
  2. datatable();
  3. print('<input type="submit" value="Wyślij"></input></form>');

datatable(); to funkcja która wyświetla mi działającą DataTable. Jak wpisze na górze skryptu
  1. var_dump($_POST);

to mam pusto (NULL). Co zrobić, żeby to co zaznaczy u żytkownik trafiało do serwera?
nospor
Cytat
ale znajduję tylko opisy jak zrobić to po stronie UI

No i raczej masz to zrobic po stronei UI.
masz zlapac zdarzenie WYSLIJ w js, wowczas pobeirasz sobie zaznaczone wiersze i te wiersze wysylasz dopiero formem, czy to ajaxem czy to normalnie przez form z polen hidden
DNMX
Też o tym myślałem ale nie podoba mi się to. Wyląda to jak jazda z Poznania do Wrocławia przez Szczecin. Zmodyfkowałem conieco przekład z buttonem i zainicjowałem datatables w taki spobób:
  1. <script>$(document).ready(function() {
  2. var events = $(\'#events\');
  3. var table = $(\'#contactstable\').DataTable( {
  4. "dom" : \'Bfrtip\',
  5. "order": [[ 3, "asc" ]],
  6. "scrollX" : true,
  7. "select" : { style: \'multi\' },
  8. buttons: [
  9. {
  10. text: \'Wyślij\',
  11. action: function () {
  12. var count = table.rows( { selected: true } );
  13. Object.entries(count).forEach(([key, value]) => {
  14. console.log(key, value) // "someKey" "some value", "hello" "world", "js javascript foreach object"
  15. })
  16. }
  17. }
  18. ]
  19. } );
  20. } );</script>

Po kliknięciu 'Wyślij' w logu widzę mnóstwo syfu. Jedyne co wydaje się przydatne to tablica deselect z numerami wierwszy w tabeli widocznych po stronie użytkownika które mają się jednak nijak do ID z bzy danych. Nie da się tego zrobić prościej?
nospor
JA nie uzywam datatable, no ale z dokumentacji wynika ze to:

table.rows( { selected: true } )

zwraca ci zaznaczone wiersze. Zakladajac, ze do DataTable w wierszach wrzcuiles tez swoje ID z bazy, to to id tam wlasnie jest. Wiec w czym problem?
DNMX
Zwraca jakies Id o wartościach 3,4 itp które odpowiadają numerom wierszy w UI
nospor
No i majac numer wiersza i wiedzac w jakiej kolumnie masxz swoje ID, to odpalasz

dataTable.cell( idx, 2 ).data();

i juz.To wszystko jest w dokuemtnacji, ktora warto bys przewertowal skoro uzywasz datatable a nie ja wertuje mimo ze nie uzywam tego ustrojstwa smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.