Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rozwijana lista miesięcy, dziwny błąd
Forum PHP.pl > Forum > Przedszkole
miedzna
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?
Gecco
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
miedzna
Cytat(Gecco @ 25.06.2008, 15:48:39 ) *
a wniosek jeden, trzeba poprawic if'a


tyle to ja wiem smile.gif pytanie jak poprawić?
Gecco
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. ?>
miedzna
OK, to spróbuj przy tym kodzie wybrać miesiąc np styczeń smile.gif u mnie ciągle wskakuje czerwiec...
Gecco
<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
webdice
Przenoszę na Przedszkole.
miedzna
Dziękuję smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.