Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z <select>
Forum PHP.pl > Forum > Przedszkole
usiek00
Mam problem pobieram sobie z bazy liste przewoznikow i chce aby zaznaczony był np. LUFTHANSA, a zaznaczony jest pierwszy jaki pobrany został z bazy. Co robie źle questionmark.gif?

  1. <?php
  2. $sql = &#092;"SELECT p.przewoznik FROM przewoznik p\";
  3. $wynik = mysql_query($sql);
  4.  
  5. $ile = mysql_num_rows($wynik);
  6. echo &#092;"<select name='przewoznik'>\";
  7. for($i=0;$i<$ile;$i++){
  8. $wiersz = mysql_fetch_array($wynik);
  9. ($wiersz[$i] == 'LUFTHANSA') ? $selected = &#092;"SELECTED\" : \"LUFTHANSA\";
  10. echo('<option value=\"' . $wiersz[$i] . '\"' . $selected . '>' . $wiersz[0] . '</option>');
  11. }
  12. echo &#092;"</select>\";
  13. ?>
Wave
  1. <?php
  2. for($i=0;$i<$ile;$i++){
  3. $wiersz = mysql_fetch_array($wynik);
  4. if($wiersz[$i] == 'LUFTHANSA') $selected='selected';
  5. else $selected='';
  6. echo('<option value=\"' . $wiersz[$i] . '\"' . $selected . '>' . $wiersz[0] . '</option>');
  7. }
  8. ?>

?
ikioloak
a zamiast tego ifa jesli juz chcesz uzywac ? : to to wyglada tak:
  1. <?php
  2.  
  3. $selected=($wiersz[$i] == 'LUFTHANSA')?&#092;"selected\" : \"\";
  4.  
  5. ?>
usiek00
Niestety ale problem wciaz jest a mianowicie jak pobieram sobie dane z tabeli to wszystkie sa przypisane do $wiersz, tylko ze ja nie moge sie do niej odwolac w sposob $wiersz[$i], gdyż tam mam tylko 1 kolumne i ok 20 wierszy wiec jak ustawie to w petli to zmienna $wiersz[1] i kazda nastepna jest pusta.

Jak zmienic tablice aby dane w niej zapisane w postaci:

przewoznik
przewoznik
przewoznik
przewoznik
przewoznik
przewoznik
przewoznik

były :

przewoznik, przewoznik, przewoznik, przewoznik, przewoznik, przewoznik ...



Zrobilem sobie na przyklad takiego selecta

  1. <?
  2. $ta = Array('c');
  3. $te = Array('a','b','c','d');
  4.  
  5. echo &#092;"<select name='przewoznik'>\";
  6. for($i=0;$i<4;$i++){
  7.  
  8.  if ($te[$i] == $ta[0]) $selected = &#092;"selected\" ;
  9.  
  10. echo('<option value=\"' . $te[$i] . '\"' . $selected . '>' . $te[$i] . '</option>');
  11. }
  12. echo &#092;"</select>\";
  13.  
  14. ?>


i z tego co mi napisaliscie powinna byc zaznaczona literka C, lecz jest D. Coś tutaj nie gra, ktoś wie co questionmark.gifquestionmark.gif?
ikioloak
Patrzysz w ogole w kod ktory masz wygenerowany?
Jak petla jest przy 'c' to do $selected masz przypisywane 'selected' i co z tego ze przy d juz nie jest przypisywane, jak wartosc ta juz tam jest czego skutkiem dostajesz:
  1. ...
  2. <option value="c"selected>c</option><option value="d"selected>d</option>
  3. ...


Zamiast if'a daj:
  1. <?php
  2.  
  3. $selected=($te[$i] == $ta[0])?&#092;"selected\" : \"\";
  4.  
  5. ?>

lub
  1. <?php
  2.  
  3. if ($te[$i] == $ta[0]) $selected = &#092;"selected\" ; else $selected=\"\";
  4.  
  5. ?>

i bedzie gralo.
usiek00
Sprawdzałeś czy to działa bo ja sprawdzałem na lokalu i na innym serwerze i cały czas wynik jest ten sam czyli wskazuje na pierwsza wartść w tabeli tj. "a".
ikioloak
  1. <?
  2. $ta = Array('c');
  3. $te = Array('a','b','c','d');
  4.  
  5. echo &#092;"<select name='przewoznik'>\";
  6. for($i=0;$i<4;$i++){
  7.  
  8.  $selected=($te[$i] == $ta[0])?&#092;"selected\" : \"\";
  9.  
  10. echo('<option value=\"' . $te[$i] . '\"' . $selected . '>' . $te[$i] . '</option>');
  11. }
  12. echo &#092;"</select>\";
  13.  
  14. ?>


Sprawdzane na WebServ1.2
usiek00
Dobra poszlo choc nic chyba nie zmienilem, pomogl mi chyba restart kompa.
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.