Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Filtrowanie danych w tabeli
peja1990
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Witam,
dzisiaj zająłem się stworzeniem tabeli w jQuery i troszkę mi przystawiło na filtrowaniu danych.
Mianowicie chcę aby skrypt działał na podobnej zasadzie jak już gotowy i dosyć znany DataTables, a więc by można było podać więcej jak jedno słowo kluczowe do pola szukania [input=text].
Mój aktualny kodzik działa jak należy, jednak wyszukuje tylko jedno słowo kluczowe, dla przykładu:
Mamy tabelę
  1. ID | Nazwa | Wartość | Data
  2. --------------------------------------------------
  3. 1 | First row | 8367 | 2011-01-02
  4. 2 | Second row | 23745 | 2012-03-21
  5. 3 | Third row | 20152 | 2010-09-16


Wpisuję słowa kluczowe w wyszukiwarce tj.
  1. firs 83 20 01 67 row


I ciągle ma być widoczny tylko pierwszy wynik w tabeli, zo przy moim aktualnym kodzie jest niemożliwe, w jego wyniku przy wprowadzonych takich słowach kluczowych wszystkie wyniki w tabeli są ukryte.

Mój aktualny kod
  1. $("#filteringTable").keyup(filtering);
  2. function filtering() {
  3. $(container).find("table tbody tr").each(function() {
  4. var count = 0;
  5. $(container).find("table tbody tr td").each(function() {
  6. var a = $(this).text();
  7. var b = $("#filteringTable").val();
  8. var rg = new RegExp(b, 'i');
  9. if(a.search(rg) != -1) {
  10. count++;
  11. }
  12. });
  13. if(count > 0) {
  14. $(this).show();
  15. } else {
  16. $(this).hide();
  17. }
  18. });
  19. }


Myślę, że trzeba to zrobić funkcją explode() albo tablicą Array(), lecz nie bardzo wiem jak się do tego zabrać dlatego proszę Was o jakieś wskazówki, za które bardzo będę wdzięczny.

Serdecznie pozdrawiam.

Ten post edytował peja1990 21.03.2012, 12:40:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maviozo
post
Post #2





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


Do rozbicia stringu na array (odpowiednik explode) w javascript służy .split(). Używasz np:
Kod
var slowa=$("input").val();
slowa=slowa.split(" ");
Jeżeli wartość to "ab c d", to dostaniesz:
[0]="ab";
[1]="c"
[2]="d".
Potem przy porównywaniu powinieneś każdorazowo porównywać do każdego elementu tablicy.
Go to the top of the page
+Quote Post
peja1990
post
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Cytat(maviozo @ 21.03.2012, 15:29:19 ) *
Do rozbicia stringu na array (odpowiednik explode) w javascript służy .split(). Używasz np:
Kod
var slowa=$("input").val();
slowa=slowa.split(" ");
Jeżeli wartość to "ab c d", to dostaniesz:
[0]="ab";
[1]="c"
[2]="d".
Potem przy porównywaniu powinieneś każdorazowo porównywać do każdego elementu tablicy.



No tyle to ja wiem (IMG:style_emoticons/default/wink.gif)
A czy potrafiłbyś mi przedstawić strukturę sprawdzania tablic ?
Bo nie bardzo wiem jak się właśnie do tego zabrać...
Chyba muszę stworzyć tablicę dla każdego wiersza tabeli i tablicę, którą właśnie przedstawiłeś.
No i te dwie tablice porównać w każdym z wierszy...
Dobrze myślę ?
Jeżeli nie to mnie poprawcie a jeżeli tak to potwierdźcie bym wiedział czy idę w dobrym kierunku (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 01:09