Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Datatables multiselect
DNMX
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 18.09.2021

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
DNMX
post
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 18.09.2021

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?
Go to the top of the page
+Quote Post
DNMX
post
Post #5





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 18.09.2021

Ostrzeżenie: (0%)
-----


Zwraca jakies Id o wartościach 3,4 itp które odpowiadają numerom wierszy w UI
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.09.2025 - 06:13