![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam takie proste pytanie, bo nie rozumiem kilku rzeczy. Mianowicie mam select ze zdarzeniem onChange, które wywołuje funkcję pokaz().
Potem odbieram sobie w javascripcie wartości value spod danego optiona:
No okey, wszystko ładnie, tylko dlaczego, po wybraniu danego optiona, strona się przeładowuje i pokazuje samą wartość ? Może powiem ogólny zarys powiem. 1. Mam Jeden select. W nim w zależności od wyboru pobieram sobie wartość z optiona, 2. przekazuje do php tą wartość i robię sobie zapytanie dp bazy danych mysql. 3. Jeśli są jakieś wyniki, wtedy wyświetlam drugi select 4. i znowu przekazuje wartość z drugiego selecta, i jeśli znowu są wyniki wyświetlam następny sleect i tak dalej i tak dalej. Jeśli zaś w którymś momencie nie ma żadnych wyników, pobieram sobie z bazy rekord o id takim jak w option i wyświetlam w wygodny dla mnie sposób. Jak to zrobić ? Powiem tak, umiem zrobić poszczególny kroki powyżej, ale nie wszystkie. I tak: 1. i potem
i teraz nie umiem, strzelam:
![]() Potem sprawdzam cyz są wyniki, jak zapętlić to ? Też taki sam select ? Bo jeśli któregoś raza nie ma wyników, wyświetlam sobie rekord, jeśli są select znowu z funkcją pokaz(this.value) i tak w koło, aż nie będzie wyników z bazy. To właściwie pisząc teraz post trochę pomyślałęm, i widzę, że nie wiem jak tylko pobrać z pod smiennej wartość i dać do zapytania mysql`owego ? No właśnie, ale to nie będzie dynamicznie generowane.. Nie wiem, poradźcie jakoś, może coś z AJAX`em ? Czekam na jakąś odpowiedź.... -------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 3 Dołączył: 15.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
jak coś to w funkcji w js aby pobrać wartość select powinno być coś takiego:
jednak polecam to robić w ajax lub jquery w sieci są przykłady tego typu zastosowań więc problemu ze znalezieniem nie powinno być. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 92 Dołączył: 6.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tu potrzeby jest AJAX, jeśli chcesz bez przeładowania strony zrobić zapytanie do serwera. Polecam frameworki
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
No własnie, wiem, i zrobiłbym to w najszybszy sposób - po wybaniu optiona jQuery wykonuje plik.php - tam sobie robie zaptania itd, no ale wlasnie w taki sposb:
$.post("test.php", { name: "John", time: "2pm" }, function(data) { alert("Data Loaded: " + data); }); Dobrze, wykonuję - a jak go odebrać od niego dane ? Ze np. wyswietla się nowy select jeśli php powie ze są dane do odebrania? -------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 92 Dołączył: 6.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
HTTP jest protokołem bezstanowym. To oznacz, że musisz co jakiś czas odpytać serw, php nie ma kontroli nad skryptem po wysłaniu do przeglądarki
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli co - najprostrzym rozwiązaniem było by wyświetlać plik PHP z selectem co np. 5s. Potem dać zdarzenie onchange, własnie tym w jquery wysłać np. nową zmienną sesyjną ( w php ), a ten plik co odświeża select pobiera dane z bazy własnie kierująć się zmienną sesyjną... ?
-------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 3 Dołączył: 15.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
jeśli chcesz zrobić to bez przeładowania strony to musisz napisać odpowiedni skrypt w ajax, jeśli może to działać z przeładowaniem strony to masz sprawę prostszą chociażby przy select pierwszym wykorzystaj zdarzenie onchange this form submit
z tym że select jest generowany dynamicznie z bazy np. pętlą while, potem odbierasz dane z pierwszego select jeśli istnieją i odpowiadają założonym wymaganiom (czy tu warunek if) to pokazujesz drugi select i tak dalej. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.05.2025 - 09:27 |