Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Filtrowanie wyników wyszukiwania na żywo, sortowanie tabeli z inputem
roghatt
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


Witam
Mam jeden problem i pytanie.
Najpierw pytanie.
Mam pole do wpisania słowa do wyszukania.
Pod spodem w tabelce mam wypisane dane z bazy np.Nazwa, cena, rodzaj.
Czy jest możliwość zrobienia aby po wpisywaniu pierwszych liter w polu wyszukiwania tabela się odpowiednio filtrowała z pasującymi wynikami? Aby tylko zostawały wiersze z pasującymi wynikami

I teraz problem
Mam taką tabelkę jak wyżej ale z dodatkową kolumną z inputem text "wpisz ilosc".
Mam zrobione zwykłe sortowanie tabeli tablesorter jquery http://tablesorter.com/docs/
Problem jest taki, ze jak wpiszę w pola wpisz ilość jakieś cyferki i zmienię sortowanie, wszystko się ułoży inaczej to pola z wpisanymi cyframi też się odpowiednio sortują, ale jak na dole nacisnę dodaj do bazy to niestety daną cyferkę wpisuje do produktu który znajdował się w wierszu przed sortowaniem.

Przykład
ilość wpisuję tylko do anteny:
komputer, 2000zł, sprzęt, 0
telewizor, 1500zł, rtv, 0
antena, 400zł, sprzęt, 3

Posortuje po nazwie:
antena, 400zł, sprzęt, 3
komputer, 2000zł, sprzęt, 0
telewizor, 1500zł, rtv, 0
tutaj naciskam na dodaj do bazy

Do bazy wpisuje się ilość 3szt do telewizora a nie do anteny. Czyli jakby była zapamiętywany wiersz w którym na początku się wpisuje.

Ten post edytował roghatt 29.08.2012, 08:40:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Wyobraź sobie, że dodajesz dynamicznie do tabeli elementy, w ten sposób:
  1. $tabela[] = 'wartosc';

Nie nadajesz elementom indeksów, tylko każdy element dodawany jest jako pierwszy wolny. Teraz w Twoim przypadku, masz listę:
- komputer
- telewizor
- antena
i każdemu odpowiada jeden input ilosc, w którym wpisujesz ilość, mają następujące indeksy (bo tablica jest generowana dynamicznie): 0, 1, 2. No i jak dostajesz zmienną $_POST['ilosc'][0] to nie wiesz czego jest to ilość, bo index 0 w tabeli nie jest w żaden sposób powiązany sztywno z komputerem, prawda? Co się stanie, gdy posortujesz tabelę w odwrotnej kolejności?
- antena
- telewizor
- komputer
Teraz $_POST['ilosc'][0] przechowuje ilość dla anteny, co powoduje dwuznaczność. Musisz zrobić tak, by powiązanie indexów w tabeli z produktami było jednoznaczne. Więc jako indexy daj np. id produktów.

Dzięki temu łatwo odczytać wartości:
  1. foreach ($_POST['ilosc'] as $key => $value) {
  2. $key; // tutaj masz id produktu
  3. $value; // tutaj masz podaną ilość
  4. }


I bez względu na sortowanie wiesz, że np. dla produktu o id 10 ilość wynosi 3, itd.

Ten post edytował b4rt3kk 30.08.2012, 16:22:19
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: 11.10.2025 - 14:20