Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Rozwijana lista miesięcy, dziwny błąd
miedzna
post 25.06.2008, 14:41:41
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Witajcie, mam taki oto kod:

  1. <?php
  2. $miesiace = array( 1 => "Styczeń", "Luty" , "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad" , "Grudzien" );
  3.  
  4.  
  5. for($i = 1; $i <= count($miesiace); $i++){
  6.  
  7. if ($_GET["mounth"] == $i || date("n") == $i) {
  8. print '<option VALUE="?mounth='.$i.'" selected>'.$miesiace[$i].'</option>';
  9. }
  10. else{
  11. print '<option VALUE="?mounth='.$i.'">'.$miesiace[$i].'</option>';
  12. }
  13.  
  14. }
  15. ?>


który miał mi generować listę miesięcy, ale miał też po wybraniu konkretnego miesiąca tworzyć zmienną $_GET["miesiąc cyfrą"] oraz na wejściu sprawdzać jaki dziś mamy miesiąc i odpowiednio ustawiać ten miesiąc na liście. Wszystko to działa, ale jest mały problem, otóż jeżeli dziś mamy czerwiec czyli 6-sty miesiąc, to po wejściu na stronę wskakuje od razu czerwiec, jeżeli wybiorę miesiąc poniżej czerwca np listopad czy sierpień, to dział bez zarzutu, jeżeli wybiorę miesiąc powyżej czerwca np styczeń lub maj, to już nie wskakuje ten miesiąc, tylko zawsze jest czerwiec natomiast zmienna GET jest tworzona prawidłowo. Gdzie jest błąd?
Powód edycji: Dodałem tag. /webdicepl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Gecco
post 25.06.2008, 14:48:39
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 4
Dołączył: 22.10.2006

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


warunek logiczny jest troche do kitu,

w twoim wypadku po wybraniu jakiegos miesiaca masz 2 pola oznaczone jakos selected, - jedno ktore bedzie przy date(n) = $i, drugie przy $_GET['month'] = $i (wyswietli sie pierwsze oznaczone jako selected), sprobuj wybrac miesiace 1-5 wtedy powino wyswietlac sie tak jak chcesz

a wniosek jeden, trzeba poprawic if'a
Go to the top of the page
+Quote Post
miedzna
post 25.06.2008, 15:12:54
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Cytat(Gecco @ 25.06.2008, 15:48:39 ) *
a wniosek jeden, trzeba poprawic if'a


tyle to ja wiem smile.gif pytanie jak poprawić?
Go to the top of the page
+Quote Post
Gecco
post 25.06.2008, 15:15:42
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 4
Dołączył: 22.10.2006

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


na szybko to np tak:

  1. <?php
  2. $miesiace = array( 1 => "Styczeń", "Luty" , "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad" , "Grudzien" );
  3.  
  4.  
  5. for($i = 1; $i <= count($miesiace); $i++){
  6.  
  7. if ($_GET["mounth"] == $i ) {
  8. print '<option VALUE="?mounth='.$i.'" selected>'.$miesiace[$i].'</option>';
  9. }
  10. elseif(date("n") == $i){
  11. print '<option VALUE="?mounth='.$i.'" selected>'.$miesiace[$i].'</option>';
  12. }
  13. else{
  14. print '<option VALUE="?mounth='.$i.'">'.$miesiace[$i].'</option>';
  15. }
  16.  
  17. }
  18. ?>
Go to the top of the page
+Quote Post
miedzna
post 25.06.2008, 15:20:21
Post #5





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


OK, to spróbuj przy tym kodzie wybrać miesiąc np styczeń smile.gif u mnie ciągle wskakuje czerwiec...
Go to the top of the page
+Quote Post
Gecco
post 25.06.2008, 15:54:55
Post #6





Grupa: Zarejestrowani
Postów: 23
Pomógł: 4
Dołączył: 22.10.2006

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


<select>
  1. <?php
  2. $miesiace = array( 1 => "Styczeń", "Luty" , "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad" , "Grudzien" );
  3.  
  4.  
  5. for($i = 1; $i <= count($miesiace); $i++){
  6.  
  7. if ($_GET["month"] == $i ) {
  8. print '<option VALUE="?month='.$i.'" selected>'.$miesiace[$i].'</option>';
  9. }
  10. elseif(date("n") == $i && !$_GET['month']){
  11. print '<option VALUE="?month='.$i.'" selected>'.$miesiace[$i].'</option>';
  12. }
  13. else{
  14. print '<option VALUE="?month='.$i.'">'.$miesiace[$i].'</option>';
  15. }
  16.  
  17. }
  18. ?>


</select>

prosze
Go to the top of the page
+Quote Post
webdice
post 25.06.2008, 15:58:13
Post #7


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Przenoszę na Przedszkole.
Go to the top of the page
+Quote Post
miedzna
post 25.06.2008, 16:05:16
Post #8





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Dziękuję smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 20:34