• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z paginacja ajax

Object Storage Arubacloud
0 głosów
394 wizyt
pytanie zadane 8 stycznia 2016 w JavaScript przez michal Mądrala (5,560 p.)
Trochu się zakręciłem i mam pewien problem. Mianowicie mam zrobiona wyszukiwarke do bazy danych i za pomoca inputow podaje kryteria wg jakich mają być wyjęte rekordy z bazy danych, nastepnie przypisuje te kryteria za pomocą js do zmiennych i wysyłam ajaxem do php który tworzy mi tabele z wynikami i wstawia do strony za pomoca ajax. Chciałbym zrobić stronnicowanie tych wyników. Napisałem sobie kod w php który wylicza mi ile potrzeba stron i od razu za tabela dodaje w pętli <span> z kolejnymi cyferkami. Teraz chciałbym aby kliknięcie na którąś z tych cyferek wywołało mi funkcje js o której wcześniej wspomniałem i jako argument podała jej nr strony. Prubowałem do każdego <span> w pętli dodać onclick z nazwą funkcji  i argumentem z nr strony w nawiasie, ale nie moge tak zrobić bo funkcja ta ma przyjmuje argument zdarzenia e i wykonuje polecenie e.preventDefault();  Przypuszczam ze sprawę rozwiązało by napisanie w js obsługi zdarzenia $('#selektor').on('click, wartość, nazwa funkcji); tylko jak to zrobić skoro ilość cyferek to wybrania stron będzie różna w zależności od ilości rekordów itd.

Trochu to zakręcone, ale mam nadzieję że w miarę logicznie wytłumaczyłem.

1 odpowiedź

+1 głos
odpowiedź 8 stycznia 2016 przez Comandeer Guru (602,330 p.)

Ale czemu LINKI do kolejnych stron nie są LINKAMI? Jakby były linkami, to wystarczyłoby wykorzystać ich atrybut [href]

komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
Hmm, jeśli dam href to odświeży stronę, a tak to wywołuje funkcję której podaje argument, inne dane odnośnie parametrów zapytania do bazy już mam w nich zapisane tylko ajaxsem  znów wysyłam do php i wykonuje mi zapytanie o tych samych parametrach, tylko kolejne rekordy. Tak to sobie wymyśliłem, ale nie wiem czy dobrym tokiem rozumowania idę.
komentarz 8 stycznia 2016 przez Comandeer Guru (602,330 p.)

Nie odświeży jeśli zablokujesz domyślną akcję elementu – sam przecież pisałeś o e.preventDefault.

komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
No tak, ale ten e.preventDefault() to mam podpięte to kliknięcia przycisku który właśnie wywołuję tą funkcje. Czyli: pobiera dane z inputów w których są parametry wyszukiwania, i wysyła ajaxem do php który wciąga z bazy i zwraca html do div w formie tablicy <table>.
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
Nie wiem czy nie zrobiłem błędu że to wszystko mam w oddzielnych plikach. Strona to jest jeden plik, funkcja jest w pliku js, ajax wysyła dane postem do kolejnego pliku php który wykonuje zapytanie do bazy i zwraca wyniki w tabeli do pliku w którymjest strona.
komentarz 8 stycznia 2016 przez Comandeer Guru (602,330 p.)
Coś to jakoś strasznie przekombinowanie brzmi…

Co ma funkcja pobierające dane od linku w paginacji?
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
	function szukajprzejazdow(e, nr)
	{
		e && e.preventDefault();
		var od = $('#od').val();
		var to = $('#do').val();
		var samochod = $("#wybierz_samochod").val();
		var kierowca = $("#wybierz_kierowce").val();
		//var kierowca = $("input[name='kierowca_id']:checked").val();
		
		$.ajax({
			type : "POST",
			url : "szukaj_przejazdow.php",
			data :
			{
				od : od,
				to : to,
				samochodw : samochod,
				kierowcaw : kierowca,
				strona : nr
				
			},
			success: function(msg){
				$('#wynik1').html(msg);
				$('#wynik').show(500);
			},
			error: function(){
				alert("wystapil blad w polonczeniu");
			}
		}); // koniec ajax
	} // koniec funkcji szukajprzejazdow

$(document).ready(function(){
	
	$('#szukaj_przejazdow').click(szukajprzejazdow);
	
}); // koniec funkcji ready

Tutaj dodatkowo chciałem podać jako argument nr strony która ma być wyświetlona. W tedy za pomoca tego ajaxa przekaże wszystko do php i wykona zapytanie z konkretnymi parametrami i ilością rekordów które mają być wyświetone, oraz od którego. To moja pierwsza taka większa aplikacja piszę po to żeby się nauczyć i miej jakieś portfolio. Tak że dziękuje za cierpliwość i wyrozumiałość. 

komentarz 8 stycznia 2016 przez Comandeer Guru (602,330 p.)
Dalej uważam, że najlepiej byłoby zrobić to na linkach.

No i wyszukiwarki to jednak powinny lecieć przez GET, nie POST – przy tym bez problemu byś zrobił link. I starczyłoby Ci tylko wygenerować odpowiednią liczbę linków, a reszta sama się obsłuży.
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
Czyli poprawić to wszystko i zrobić tak. W jednym pliku treść strony i kod php.I nie robić tego ajaxem, tylko zrobić zwykły formularz, który getem wyśle dane do kodu php który będzie w tym samym pliku i poprostu po odświeżeniu strony wczyta dane z bazy?
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
To będzie dobre rozwiązanie?
komentarz 8 stycznia 2016 przez Comandeer Guru (602,330 p.)
Nie mówię, żeby nie robić Ajaksem. Raczej na taką "normalną" stronę dodać ajaksa.
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
Udało mi sie to zrobić za pomocą tej funkcji. :) Nie wiem czy jest to zrobione profesjonalnie, ale działa. Do wszystkich tych <span> przypisałem onclick="wybierz_strone(nr_strony)", a w tym pliku js z ta funkcja dodałem na gorze zmienna w której przechowuje nr strony i napisałem funkcję druga wybierz stronę w której do tej zmiennej przypisuje nr strony i wywołuje następnie ta funkcje szukajprzejazdow(); a w niej już wykorzystuje ta zmienna z nr strony. Trochę to takie masło maślane, ale działa. Jeszcze przydało by mi się zorientować jak to powinno być profesjonalnie napisane. :)
komentarz 8 stycznia 2016 przez Comandeer Guru (602,330 p.)
Pewnie nie uwierzysz, ale… profesjonalnie po prostu używa się linków, które są następnie przechwytywane w JS.
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
No ale to tworzy się tyle linków ile ma być stron i linki maja adres do aktualnej strony na której się znajdujemy, tylko dopisywany jest get z numerem strony?
komentarz 8 stycznia 2016 przez Comandeer Guru (602,330 p.)
Albo przesyła się liczbę stron i linki generuje w JS.
komentarz 8 stycznia 2016 przez michal Mądrala (5,560 p.)
No nic. To z tym tworzeniem linków z getem z numerem strony to kapuje, ale z tem generowaniem w js będę musiał gdzieś doczytać.Może uda mi się znaleść jakieś info na ten temat. Dziękuje za pomoc, może uda mi się kiedyś jakoś odwdzięczyć :)

Podobne pytania

0 głosów
0 odpowiedzi 158 wizyt
pytanie zadane 30 grudnia 2015 w PHP przez Kumalski97 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 254 wizyt
pytanie zadane 8 grudnia 2018 w PHP przez niezalogowany
0 głosów
0 odpowiedzi 360 wizyt
pytanie zadane 10 kwietnia 2019 w Inne języki przez rastuszek Nowicjusz (170 p.)

92,620 zapytań

141,474 odpowiedzi

319,815 komentarzy

62,004 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...