![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 2 Dołączył: 18.11.2009 Skąd: Grudziądz Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
zrobiłem takie oto filtrowanie: http://iam4u-server.home.pl/sklep/filter.php aczkolwiek nie działa to w taki sposób w jaki sobie to założyłem... Pokazuje mi ładnie wysortowane wyniki z bazy, ale nie pamięta wszystkich wartości filtrowania, dla przykładu: jeżeli wybiorę kolor np czerwony oraz smak np wytrawne, to wyszukuje mi wyłącznie rekordy z wartością "wytrawne", a kolor jest pomijany. Wiem, że jest wina w skrypcie jQuery, ponieważ ręcznie wpisane wartości w skrypcie PHP działają poprawnie. Ad1. Macie jakieś rady ? Ad2. Ponadto chciałbym prosić o wyjaśnienie w jaki sposób wysłać wyniki sortowania z pliku function.php do pliku index.php ? JS:
PHP:
HTML: Pozdrawiam ! -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
problem chyba jest w this:
Kod $(".filtr").click(function() { var kolor = $(this).find('div.k').attr('id'); w ten sposób nie znajdzie ci tego, bo this to w tym wypadku dany .filtr. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 2 Dołączył: 18.11.2009 Skąd: Grudziądz Ostrzeżenie: (0%) ![]() ![]() |
a jakieś pomysły ? :/
-------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
noo... po prostu zamiast:
Cytat var kolor = $(this).find('div.k').attr('id'); musisz walnąć inny selektor w jQuery. Coś na zasadzie Kod var kolor = $("#filtr-kolor .filtr div.k"). attr('id') (ale to ci nie zadziała do końca, ponieważ musisz jeszcze doprecyzować, żeby wybrał tylko ten element div.k, który jest zaznaczony/włączony, teraz wybierzesz pierwszy z brzegu). poza tym tam masz literówkę w jednym miejscu - add zamiast attr. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 2 Dołączył: 18.11.2009 Skąd: Grudziądz Ostrzeżenie: (0%) ![]() ![]() |
mozesz podac przyklad na kodzie jak to zrobic ?
-------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Mnie zastanawia, dlaczego używasz do tego div-ów, a nie formularza (ładne formularze można uzyskać za pomocą CSS'a lub pluginów do jQuery)? Niemniej, każdy kliknięty element powinien być w jakiś sposób "oznaczony" (np. dodatkową klasą selected, przy czym zauważ, że pola typu checkbox lub radio już taką "właściwość" posiadają (te zaznaczone)). Można by się zastanowić nad użyciem jQuery UI Selectable. W Twoim przykładzie wybrać mogę tylko jedną z opcji koloru, smaku, ceny itd., co nie jest zbyt słusznym rozwiązaniem, jeśli bierzemy pod uwagę potrzeby potencjalnego użytkownika końcowego (być może klient będzie chciał zarówno białe, jak i różowe wino za które może zapłacić od 99 - 159 zł). Elementy HTML, które posiadają id powinny być elementami "istotnymi", czyli takimi, które dokładnie określają czego dokument HTML i jego treść w tym danym miejscu dotyczy. Chyba nadużywasz id-ów, co może mieć negatywne konsekwencje choćby w kwestii pozycjonowania strony.
Jeśli chodzi o PHP to funkcja szukaj jest źle zorganizowana. Pamiętaj, że skrypt wywoływany jest wraz z każdym kliknięciem/zaznaczeniem elementu, co oznacza, że nie wszystkie parametry w każdym kolejnym wywołaniu funkcji szukaj będą dostępne (ewentualnie będą puste - NULL). Funkcja szukaj również (to o czym pisałem w kwestii zaznaczania wybranych właściwości) nie uwzględnia możliwości wyszukiwania według dwóch i większej liczby wartości parametru np. win w dwóch/trzech/itd. różnych kolorach. Dane zwracaj w takiej formie, która Ci odpowiada. Ja użyłbym json-a i zwróciłbym tylko i wyłącznie dane pobrane z bazy w postaci tablicy, niemniej nic nie stoi na przeszkodzie, aby zwracać HTML. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
mozesz podac przyklad na kodzie jak to zrobic ? tak, za ciebie zrobię od razu. Żeby zobaczyć co jest źle, musiałem obejrzeć ten twój kod, a potem tę stronę i kilka (5-10? nie wiem) minut się głowić, aż zobaczyłem tamto z tym this. A potem jeszcze odpisałem raz i drugi i zobaczyłem tę literówkę z add. Uszanuj to, że ktoś ci pomaga a nie proś o zrobienie całej pracy z gotowca. Nawet nie znając za bardzo specyfiki JavaScriptu, z samej dokumentacji jQuery możesz już dalej sobie wykombinować jak to zrobić: http://api.jquery.com/category/selectors/ Tak abstrahując od tego tematu, bo problem się powtarza, to zastanawiam się czemu ludzie biorą się za robienie zleceń, które są ponad ich możliwości programistyczne? -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:04 |