Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z pętlami i tablicami
MitS
post
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mój problem polega na tym że mam taką tablicę:

  1. <?php
  2. [ag] => Array (
  3. [rform] => Array (
  4. [0] => Array (
  5. [rooms] => Array (
  6. [0] => Array (
  7. [room_id] => 4
  8. [room_name] => Apartament1
  9. )
  10.  
  11. [1] => Array (
  12. [room_id] => 5
  13. [room_name] => Apartament2
  14. )
  15.  
  16. [2] => Array (
  17. [room_id] => 3
  18. [room_name] => Apartament3
  19. )
  20.  
  21. [3] => Array (
  22. [room_id] => 1
  23. [room_name] => Apartament4
  24. )
  25.  
  26. [4] => Array (
  27. [room_id] => 2
  28. [room_name] => Apartament5
  29. )
  30.  )
  31. [start_date] => 2007-02-20
  32. [end_date] => 2007-02-22
  33. [hotel_name] => Hotel pierwszy
  34. [hotel_alias] => hotel_pierwszy
  35. )
  36. [1] => Array (
  37. [rooms] => Array (
  38. [0] => Array (
  39. [room_id] => 17
  40. [room_name] => Pokoj1
  41. )
  42. [1] => Array (
  43. [room_id] => 18
  44. [room_name] => pokoj2
  45. )
  46. )
  47. [start_date] => 2007-02-20
  48. [end_date] => 2007-02-22
  49. [hotel_name] => Hotel test
  50. [hotel_alias] => hotel_test
  51. )
  52. )
  53. )
  54. ?>


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:

  1. <?php
  2. //----------------------------------------------------- HOTEL ------------------------------//
  3. $hotel = "<select id='hotel' class='hotel' name='hotel_name' tabindex='101'>n";
  4.  
  5. for($i=0; $i<count($data['ag']['rform']); $i++)
  6. {
  7. if(is_array($data['ag']['rform'][$i]['rooms']))
  8. {
  9.  $hotel.='<option value="'.$data['ag']['rform'][$i]['hotel_alias'].'">'.$data['ag']['rform'][$i]['hotel_name'].'</option>';
  10. }
  11. }
  12.  
  13. $hotel.="</select>";
  14.  
  15. //----------------------------------------------------- POKOJE -------------------------------//
  16. $reservation = "<select id='rooms' class='rooms' name='rooms' tabindex='101'>n";
  17.  
  18. for($i=0; $i<count($data['ag']); $i++)
  19. {
  20. if(is_array($data['ag']['rform'][$i]['rooms']))
  21. {
  22. foreach($data['ag']['rform'][$i]['rooms'] as $key => $values)
  23. {
  24. $k[$i]="<option value='".$values['room_id']."'>".$values['room_name']."</option>n"; 
  25. $reservation.= $k[$i];
  26. }
  27. }
  28. }
  29.  
  30. $reservation.="</select>";
  31. ?>


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cienki1980
post
Post #2





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.
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: 3.10.2025 - 01:31