Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: select z wyborem kraju w 2 jezykach.
Forum PHP.pl > Forum > PHP
MalyKazio
Witam,

Mam do stworzenia bazę danych, gdzie użytkownik wybierałby kraj pochodzenia. Problem jest jednak w tym, że kraje te muszą być w dwóch językach w zależności od języka wybranego przez użytkownika. Kłopot pojawił się już na etapie tworzenia <SECLET> w formularzu bowiem musiałem stworzyć dwa selecty, osobny dla każdego języka. W zależności od wybranego języka includowałem odpowiedni plik i tak jeśli $jezyk = pol wczytywałem kraje_pol.php, dla $jezyk = eng wczytywałem kraje_eng.php. Osobne formularze zrobiłem ze względu na kłopot w sortowaniu. Bez względu na język kraje musiały mieć to samo ID natomiast posortowane musiały być alfabetycznie dlatego uznałem, że jedyną metodą która znam jest stworzenie dwóch zestawów:

  1. <option value=\"0\" selected=\"selected\">Wybierz kraj</option>
  2. <option value=\"1\">Afganistan</option>
  3. <option value=\"2\">Albania</option>
  4. <option value=\"3\">Algieria</option>


itp.
Teraz przyszło mi zmierzyć się z jeszcze większym problemem. W przypadku edycji danych, musi być zaznaczone pole, które użytkownik już wybrał. W innym miejscu, w podobnej sytuacji stosowalem do tego:
  1. <?php
  2. echo "miesiąc <SELECT NAME="miesiac"><OPTION";
  3. if ($row2[miesiac] == 0) echo " SELECTED";
  4. echo " VALUE="0">--</OPTION>";
  5. for ($m = 1; $m <= 12; $m++) {
  6. echo "<OPTION";
  7. if ($m == $row2[miesiac]) echo " SELECTED";
  8. echo " VALUE="$m">$m</OPTION>";
  9. }
  10. ?>


jednak teraz, przy 220 krajach, sprawdzanie 440 razy (w dwoch miejscach jest kraj) warunku if chyba mija się z celem. Czy ktoś może podpowiedzieć jakieś rozwiązanie?
Cysiaczek
Czy ja dobrze zrozumiałem? Chcesz wprowadzić 440 instrukcji warunkoych?questionmark.gif
Oj to na pewno nie jest dobry pomysł biggrin.gif

1. Wypisz sobie te kraje (w pliku txt, xml'u lub bazie danych).
2. przypisz każdemu identyfikator np.
1(Polska,Poland) (to niekoniecznie musi być tak)

3. Stwórz funkcję, która sprawdzi, czy wybrany kraj jest na twojej liście.

zapomnij w tym przypadku o if else
MalyKazio
Własnie wolałbym uniknąć takiej masakry smile.gif
Zastanawiałem się nad wrzuceniem tego do bazy danych na podobnej zasadzie o której piszesz.
Poza tym nadal nie wiem co zrobić żeby jakoś zaznaczyć wybrane pole. Na pewnie nie użyje 440 x IF. Może po prostu na pierwszej pozycji dam wybrane pole np <OPTION VALUE="34" SELECTED>Madagaskar</OPTION> a potem niżej po prostu jeszcze raz wyświetlę wszystkie możliwości (łącznie z tym już zaznaczonym wyżej - będzie się powtarzał.
tomekp
Stwórz sobie dwie tablice z nazwami krajów, i sprawdzaj if'em której ma użyć.
A co do tego sprawdzania, to nie wiem w jaki sposób inaczej byś to mógł zrobić, ja myślę osobiście, że z if'ami nie jest źle.
Sam sprawdzam sobie w ten sposób województwo i kraj.
erix
Cytat
Sam sprawdzam sobie w ten sposób województwo i kraj.

wojewodztw masz 16, a krajow troche wiecej...

rozwiazanie juz dal Cysiaczek
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.