Opcja 1 - Użyj zdarzenia preXhr.dt.
table = $('#example')
.on('preXhr.dt', function (e, settings, data) {
data.whateveryouwant = $("#someidhere").val()
data.anotherexample = "kittens"
})
// then just setup your datatable as normal
.DataTable({
ajax:{
url: "/url/getTableData",
type: "GET" // This is the default value, could also be POST
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
patrz tutaj http://datatables.net/reference/event/
Opcja 2 (korzystnie) - Wykorzystanie ajax.data funkcji.
table = $('#example').DataTable({
ajax:{
url: "/url/getTableData", // Change this URL to where your json data comes from
type: "GET", // This is the default value, could also be POST, or anything you want.
data: function(d) {
d.whateveryouwant = $("#someidhere").val()
d.anotherexample = "kittens"
}
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
Obie opcje dają identyczne wyniki. Twój serwer nie zauważy różnicy. Dodatkowe dane będą dodawane co każde table.ajax.reload()
. Dodatkowe dane będą:
whateveryouwant
razem z wartością elementu #someidhere
i
anotherexample
o wartości "kittens"
Wolę opcja 2, ponieważ jest to bardziej oczywiste, że dodatkowe dane są dodane na każde żądanie. Pierwsza opcja jest trochę podstępna i nie jest tak oczywista, jak sądzę, że ktoś czyta twój kod.
Czy w ogóle czytałeś dokumentację? Wygląda na to, że możesz użyć jednego z nich tuż przed przeładowaniem: http://datatables.net/reference/api/ajax.url() i http://datatables.net/reference/option/ajax.data – Ian
Zrobiłem przeczytaj dokumentację, ale nie udało mi się znaleźć odpowiedzi. Nie chciałem zmieniać adresu URL, tylko parametry. I nie jestem pewien, czy użycie adresu URL, jak sugerujesz, pomaga mi w tym sensie, mimo że jest to rzeczywiście rozwiązanie. – BMF
W zależności od tego, co rozumiesz przez "kilka parametrów", zmiana adresu URL była opcją (dodanie zapytania o znak zapytania). Ale jeśli chcesz przekazać dane w treści żądania POST, użyj mojego drugiego linku (http://datatables.net/reference/option/ajax.data) - jestem prawie pewien, że to o wiele lepszy przykład niż Odpowiedź została zaakceptowana i wydaje się, że dokładnie do tego, co próbujesz zrobić, a nie do hacky. – Ian