Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]spis miast, rozwijana lista
skabszo
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

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


Witam mam pytanie otóż chcę w moim formularzu dodać rozwijaną listę z której user będzie mógł wybrać swoje miasto - z Polski fkors . Problem jest jednak taki że ich jest $*(^%$ dużo i chciałem się dowiedzieć jak to wykonać - otóż pierwszą metodą wg mnie ( ale najgorszą ) jest spis ręczny to znaczy samemu będę wypisać
Kod
<option value="Rabka">Rabka</option>
etc to jest strasznie pracochłonne. Więc pomyślałem sobie że może da się dorwać alfabetyczny spis - zwykły tekst - i po prostu na początku i końcu wyrazów dodać <option >....</option> jednak <myśli> nie bardzo wiem jak to zrobić bo wtedy chyba każda nazwa to by musiała być osobna zmienna prawda? czy wtedy już może byłby to ciąg? pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Cosi*
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2007
Skąd: Dąbrowa Górnicza

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


A po co tak kombinować? Jeżeli masz listę miast np. w pliku tekstowym, to robisz pętlę, w której pobierasz z pliku kolejne miasta, wstawiasz do zmiennej $miasto, a potem wystarczy:
  1. <?php
  2. print '<option value="' . $miasto . '">'. $miasto . '</option>';
  3. ?>

I tyle smile.gif
Pozdrawiam


--------------------
http://cosi.com.pl
<? $kate or die ?>
Go to the top of the page
+Quote Post
skabszo
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

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


Cosi dzięki winksmiley.jpg tylko takie pytanie mam - coś takiego odkopałem :

  1. <?
  2. $plik="miasta.txt"; // plik do odczytania
  3. $start="1"; // linia startartowa (musi byc mniejsza niż $end)
  4. $end="335"; // linia końcowa (musi byc wieksza niz $start)
  5.  
  6. $array=file($plik);
  7. $linie=count($array);
  8.  
  9. if(!($end>$linie)) {
  10. while($start<=$end) {
  11.  print '<option value="'.($array[$start]).'">'.($array[$start]).'</option>';
  12.  print ("<BR />");
  13.  $start++;
  14. }
  15. } else {
  16.  echo("Plik $plik nie ma tyle lini!");
  17. }
  18.  
  19. ?>


I to chyba dobrze jest składniowo prawda? no tak czy tak mam pytanie - bo on mi to jakoś dziwnie wyświetla w źródle - tzn linia jest łamana nie tam gdzie ma :| http://wklej.org/id/a0bfd9e516 - miasta.txt - mam tez jeszcze problem z polskimi znakami wtedy;/

Ten post edytował skabszo 2.09.2007, 11:07:13
Go to the top of the page
+Quote Post
tsharek
post
Post #4





Grupa: Zarejestrowani
Postów: 300
Pomógł: 1
Dołączył: 22.09.2003
Skąd: Czeladź

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


ale namieszałeś z tym kodem. A gdzie źle łamie linie? wygląda na to że jest ok. Aha: wywal to
  1. <?php
  2. print ("<BR />");
  3. ?>
bo w <select> nie ma czegoś takiego jak <br />. Tak pozatym to troszkę nieoptymalny kod:
  1. <?php
  2. $file=file('miasta.txt');
  3. echo '<select name="miasteczko">';
  4. foreach($file as $f) echo '<option>'.$f.'</option>';
  5. echo '</select>';
  6. ?>
smile.gif


--------------------
Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. <?php
  2. $array = file('miasta.txt');
  3. $echo = '';
  4.  
  5. foreach ($array as $city) {
  6. $city = chop($city);
  7.  
  8. $echo .= '<option value="'.$city.'">'.$city.'</option>';
  9. }
  10.  
  11. echo '<select name="cities">'.$echo.'</select>';
  12. ?>


@tsharek: aj, byłeś pierwszy smile.gif no ale Twój kod może być jeszcze lepszy poprzez wyeliminowanie nadmiernej liczby echo() smile.gif Lepiej przypisywać treść do jakiejś zmiennej i dopiero na końcu wypuścić ją na ekran.

Ten post edytował phpion.com 2.09.2007, 11:24:37
Go to the top of the page
+Quote Post
envp
post
Post #6





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


a pomyślałeś może o "autocomplete text input" ? najlepsze rozwiązanie w tej sytuacji, bo co jak ktoś pochodzi ze wsi, a jego miasta w selectcie nie bedzie? wpisze własne, jeśli będzie wpisze pierwszą litere i zwrócisz mu pule psujących wyników smile.gif
Go to the top of the page
+Quote Post
skabszo
post
Post #7





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

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


przepraszam Was ale dopiero zaczynam z php winksmiley.jpg jak poradzić sobie z brakiem polskich liter? usiłowałem zapisywać na różne sposoby plik txt ale nie wyszło no a nie mogę po prostu wstawić mety bo się validator będzie pluł :|
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 Aktualny czas: 22.08.2025 - 02:08