![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Już mnie krew zalewa więc byłbym wdzięczny za pomoc ![]() Mój problem polega na tym że mam taką tablicę:
No i chciałbym zrobić coś takiego, że mam dwa pola wyboru select (pierwszy wybierz hotel, drugi wybierz pokój). Mój problem polega na tym że nie wiem jak zrobić pętle takie że: * Wczyta do pierwszego selecta nazwy hoteli (w moim wypadku dwa: Hotel pierwszy i Hotel test), * wczyta do drugiego selecta wszystkie pozycje z nazwami pokojów z danego hotelu ([room_name]) czyli np. dla Hotel test będą to: Pokoj1 i Pokoj2 i np. po zmianie hotelu z pierwszego selecta zmienią się nazwy pokoi w drugim... Ja to zrobiłem tak:
Ale w tym wypadku do drugiego selecta ładują się wszystkie pokoje (z pierwszego hotelu i drugiego) a powinno się tylko z wybranego (i tu mi nie wychodzi).... Dodatkowo nie wiem jak zrobic js by w zdarzeniu onchange selecta pierwszego bez przeładowania zmieniały mi sie nazwy pokoju po wybraniu danego hotelu ... Pomożecie ![]() Please bo mnie już nerwica bierze ... Pozdro ------------------------- ortograf w temacie bił po oczach przy okazji poprawiłem te w poście ~Cienki1980 Ten post edytował Cienki1980 20.02.2007, 08:24:40 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
hmm nie prościej zrobić to w JS?
robisz sobie 3 tablice, 1 z hotelami 2 pozostałe ich pokojami. Potem za pomocą JS polecenia selectedIndex sprawdzasz który hotel został wybrany i uzupełniasz drugi select daną tablicą. -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
No własnie tak nie bardzo ... bo te dane tablicowe pobierane są z bazy a żeby obsłozyc takie cos to albo php albo ajaxem, ja zas ajaxa nie do końca kminie .... więc jeśli ktoś byłby wstanie mi pomóc z samymi pętlami byłbym wdzięczny ...
Pozdro Ten post edytował MitS 20.02.2007, 21:05:58 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Skorzystaj z tego SKRYPTU.
Generuj go w php na podstawie danych wyciąganych z bazy a potem po prostu zamieść wygenerowany kod na stronie. Ja dawno temu korzystałem z tego i działało bez zarzutu. -------------------- 404
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
ok dzieki ... to załatwia sprawe dynamicznego zmieniania wartosci w selectach .....
Teraz pozostaje sprawa stworzenie dwoch (lub trzech) odpowiednich pętli ładujących dane z tablicy do selectow. Jakieś propozycje ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
ok dzieki ... to załatwia sprawe dynamicznego zmieniania wartosci w selectach ..... Teraz pozostaje sprawa stworzenie dwoch (lub trzech) odpowiednich pętli ładujących dane z tablicy do selectow. Jakieś propozycje ![]() Wszystko zależy od tego jak masz dane w bazie. Możesz wykorzystać for(), foreach() while() ... wybór masz duży. -------------------- 404
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
to znaczy dane mam takie jakie są w tablicy powyżej ...
Ja chcem użyć pętli for i foreach ale nie wychodzi mi to... Przypominam że mój problem polega na tym iż do pierwszego selecta chcem załadowac nazwy hoteli i to działa:
Zaś do drugiego selecta chcem załądować nazwy pokoi i to już mi nie do końca działa (bo ładują się wszystie nazwy pokoi ze wszystkich hoteli):
a jak zrobić by np. jak będzie w polu select "Hotel pierwszy" to do selecta drugiego były ładowane pokoje z tablicy: [rform] => Array ( [0] => Array ( [rooms] => Array ( [0] => Array ( [room_id] => 4 [room_name] => Apartament1 ) [1] => Array ( [room_id] => 5 [room_name] => Apartament2 ) [2] => Array ( [room_id] => 3 [room_name] => Apartament3 ) [3] => Array ( [room_id] => 1 [room_name] => Apartament4 ) [4] => Array ( [room_id] => 2 [room_name] => Apartament5 ) ) [start_date] => 2007-02-20 [end_date] => 2007-02-22 [hotel_name] => Hotel pierwszy [hotel_alias] => hotel_pierwszy ) Prosze o pomoc bo kombinuje i kombinuje bez pozytywnych rezultatów ![]() Ten post edytował MitS 26.02.2007, 23:43:09 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Hmmm nie do końca o to mi chodziło w jaki sposób umieszczasz dane w tablicy bo to już widziałem. Chodzi mi o to jak masz umieszczone je w bazie danych.
Ja bym zabrał się do tego jakoś tak ( zakładając, że mam tabelę hotele oraz tabele pokoje połączone ze sobą przez ID_HOTELU ) 1. Wyciągam dane o hotelach. a. dla każdego hotelu wpisuje dane do tablicy JS b. dla każdego hotelu wyciągam pokoje c. wpisuje je do tablicy JS 2. Tak wygenerowany kod JS umieszczam na stronie html 3. Mam dwa selecty, z których zawartość drugiego zmienia mi się w zależności od wybranego pierwszego. Mówiąc o tablicach JS mam na myśli taką strukturę jaka została pokazana w tym skrypcie JS, do którego link pokazałem kilka postów wyżej. -------------------- 404
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
kurde no nie moge tak jak ty piszesz zrobić - za małe moje umiejętności :/ ....
Ale zrobiłem troche inacze ![]()
i to działa, w ten sposób że z tej tablicy wypisuje sie do pierwszego selecta nazwa wszystkich hoteli, a jeśli chodzi o pokoje to tworzy on do każdego hotelu dodatkowe selecty z pokojami (z danego hotelu). tylko teraz jest tak że jak mam np. 10 hoteli i w każdym jakiś pokój to stworzy mi 10 widocznych selectów ... A jak zrobić tak by wszystkie były ukryte a tylko widoczny ten select z pokojami który wybrany został hotel... Ja wiem jak teoretycznie to wykonać ale z praktyką niestety gorzej ... Ja bym to wykonał tak że: 1.) do pierwszego selecta dopisał id+cyfra do każdego optionsa w nim. 2.) do każdego selecta z pokojami bym dopisał id+ cyfra (ta sama cyfra co wyżej) 3.) Jeżeli bym wybrał pokoj z id+1 to pojawił by mi sie select z pokojami o jakimś id+1 a reszte były by ukryte .... ale niestety nie wiem jak tego dokonac ![]() ![]() ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Ecchhh kombinujesz jak koń pod górę. Dostałeś sposób na talerzu to stwierdziłeś, że jest zbyt ciężki i wymyśliłeś jeszcze bardziej zamotany.
Poniżej masz przerobiony kod z podanej przeze mnie strony, generowany dynamicznie w PHP. Wystarczy tylko podstawić swoje dane. Nic prostszego.
-------------------- 404
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
dzięki
![]() ratujesz mi życie bo za nic nie mogłem tego zrobić :/ a wnioski to że muszę js sie poduczyć ![]() Pozdrawiam ---------- ortografii też chyba musisz ![]() ~Cienki1980 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 15:51 |