Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dynamiczny Option w formularzu
Forum PHP.pl > Forum > Przedszkole
shpaque
Witam serdecznie,
mam pytanie jak zrobić, żeby w przypadku pobrania jakiejsc opcji (przy edycji wpisu) rozpoznał ją i pominął na liscie (bo teraz mam powtorzoną opcję na liscie) chyab wiecie o co chodzi - powiedzmy, ze edytuje plik z value = 2 - i w edycji pozakuje mi aktualny value - nie chce aby na liscie wyboru gdzies tam znowu byl powtorzony value 2 (jak zwykle zamotałem), oto kod:

  1. echo "<tr><td>Grupa:</td>\n";
  2.  
  3. if ($grupa_value == 1) {$cat = "Budownictwo Mieszkaniowe";}
  4. else if ($grupa_value == 2) {$cat = "Obiekty Użyteczności Publicznej";}
  5. else if ($grupa_value == 3) {$cat = "Przestrzeń Publiczna";}
  6. else if ($grupa_value == 4) {$cat = "Obiekty Handlowe";}
  7. else if ($grupa_value == 5) {$cat = "Pozostałe Realizacje";}
  8.  
  9. echo "<td><select name='grupa'>\n";
  10. echo "<option value=\"" . $grupa_value . "\">$cat</option>\n";
  11. echo "<option value='1'>Budownictwo Mieszkaniowe</option>\n";
  12. echo "<option value='2'>Obiekty Użyteczności Publicznej</option>\n";
  13. echo "<option value='3'>Przestrzeń Publiczna</option>\n";
  14. echo "<option value='4'>Obiekty Handlowe</option>\n";
  15. echo "<option value='5'>Pozostałe Realizacje</option>\n";
  16. echo "</select></td></tr>\n";

nospor
Totalnei zle sie za to zabrales.

Masz miec jedna liste opcji, bez zadnego sztucznego dodawania aktualnie edytowanej.
Zas na tej liscie, przy aktualnie edytowanej opcji masz dodac atrybut selected="selected"
shpaque
czyli działający wycinek wygląda tak: - dzięki
  1. echo "<tr><td>Grupa:</td>\n";
  2.  
  3. $x_one = "";
  4. $x_two = "";
  5. $x_three = "";
  6. $x_four = "";
  7. $x_five = "";
  8. if ($grupa_value == 1) {$x_one = "selected";}
  9. else if ($grupa_value == 2) {$x_two = "selected";}
  10. else if ($grupa_value == 3) {$x_three = "selected";}
  11. else if ($grupa_value == 4) {$x_four = "selected";}
  12. else if ($grupa_value == 5) {$x_five = "selected";}
  13.  
  14. echo "<td><select name='grupa'>\n";
  15. echo "<option value='1' $x_one>Budownictwo Mieszkaniowe</option>\n";
  16. echo "<option value='2' $x_two>Obiekty Użyteczności Publicznej</option>\n";
  17. echo "<option value='3' $x_three>Przestrzeń Publiczna</option>\n";
  18. echo "<option value='4' $x_four>Obiekty Handlowe</option>\n";
  19. echo "<option value='5' $x_five>Pozostałe Realizacje</option>\n";
  20. echo "</select></td></tr>\n";

gogomania
Cytat(shpaque @ 3.05.2017, 18:30:06 ) *
czyli działający wycinek wygląda tak: - dzięki
  1. echo "<tr><td>Grupa:</td>\n";
  2.  
  3. $x_one = "";
  4. $x_two = "";
  5. $x_three = "";
  6. $x_four = "";
  7. $x_five = "";
  8. if ($grupa_value == 1) {$x_one = "selected";}
  9. else if ($grupa_value == 2) {$x_two = "selected";}
  10. else if ($grupa_value == 3) {$x_three = "selected";}
  11. else if ($grupa_value == 4) {$x_four = "selected";}
  12. else if ($grupa_value == 5) {$x_five = "selected";}
  13.  
  14. echo "<td><select name='grupa'>\n";
  15. echo "<option value='1' $x_one>Budownictwo Mieszkaniowe</option>\n";
  16. echo "<option value='2' $x_two>Obiekty Użyteczności Publicznej</option>\n";
  17. echo "<option value='3' $x_three>Przestrzeń Publiczna</option>\n";
  18. echo "<option value='4' $x_four>Obiekty Handlowe</option>\n";
  19. echo "<option value='5' $x_five>Pozostałe Realizacje</option>\n";
  20. echo "</select></td></tr>\n";


A nie lepiej coś takiego:
  1. $grupa_id_wartosc = '';
  2.  
  3. $sql = "SELECT * FROM `".$tabela_glowna."`";
  4.  
  5. $result = mysqli_query($polaczenie_mysqli, $sql);
  6. if ($dane = mysqli_fetch_array($result)) {
  7. $grupa_id_wartosc = $dane['grupa_id'];
  8.  
  9. }
  10.  
  11.  
  12. // tutaj kolumna tabeli...
  13. echo '<td>';
  14. $grupa = "SELECT * FROM ".$tabela_grupy." ORDER BY `grupa_id`";
  15. $wynik_grupa = mysqli_query ($polaczenie_mysqli, $grupa);
  16. echo "<select id='grupa_id' name='grupa'>";
  17. echo "<option value='grupa_id' disabled selected style='display:none;'>Wybierz...</option>";
  18. while($gr = mysqli_fetch_array($wynik_grupa)) {
  19. echo "<option value='$gr[grupa_id]' ". ($grupa_id_wartosc == "$gr[grupa_id]" ? 'selected="selected"' : "")." >$gr[grupa_nazwa]</option>";
  20. }
  21. echo "</select>";
  22. echo '</td>';


Proszę o wyrozumiałość - mogłem popełnić gdzieś błędy w pisowni...

Edit:
zapomniałem dopisać, że lepiej trzymać te dane w bazie niż duplikować na stronach:
tabela `grupy` składać się będzie z `grupa_id` (jako INT(2) Auto Increment) oraz `grupa_nazwa` (varchar(100))...

grupa_id grupa_nazwa
1 Budownictwo Mieszkaniowe
2 Obiekty Użyteczności Publicznej
3 Przestrzeń Publiczna
4 Obiekty Handlowe
5 Pozostałe Realizacje

A później wyciągasz to zapytaniem do <select><option></option></select> tak jak pokazałem wyżej.
nospor
echo "<option value='grupa_id' disabled selected style='display:none;'>Wybierz...</option>";

Mozesz mi wyjasnic po co tam jest disabled selected i jeszcze display none? Czemu nie dales tam jeszcze color:black; oraz chips and fries? wink.gif
gogomania
Cytat(nospor @ 5.05.2017, 11:38:35 ) *
echo "<option value='grupa_id' disabled selected style='display:none;'>Wybierz...</option>";

Mozesz mi wyjasnic po co tam jest disabled selected i jeszcze display none? Czemu nie dales tam jeszcze color:black; oraz chips and fries? wink.gif


Oczywiście, że mogę wyjaśnić po co to jest. Chciałem uzyskać pokazanie "Wybierz" jako szary select, który znika po dokonaniu wyboru. smile.gif

EDIT:
Ahh widzę do czego pijesz. "disabled" faktycznie nie jest potrzebne 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.