Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Gotowe rozwiązania _ Datatables multiselect

Napisany przez: DNMX 19.12.2022, 12:42:42

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. http://www.php.net/print('<form action="/?action=bulk" method="POST">');
  2. datatable();
  3. http://www.php.net/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. http://www.php.net/var_dump($_POST);

to mam pusto (NULL). Co zrobić, żeby to co zaznaczy u żytkownik trafiało do serwera?

Napisany przez: nospor 19.12.2022, 13:26:53

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

Napisany przez: DNMX 19.12.2022, 14:43:48

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. <http://december.com/html/4/element/script.html>$(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. } );</http://december.com/html/4/element/script.html>

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?

Napisany przez: nospor 19.12.2022, 15:12:10

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?

Napisany przez: DNMX 19.12.2022, 15:42:37

Zwraca jakies Id o wartościach 3,4 itp które odpowiadają numerom wierszy w UI

Napisany przez: nospor 19.12.2022, 16:17:03

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)