Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dynamiczny Option w formularzu
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


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";

Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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"
Go to the top of the page
+Quote Post
shpaque
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


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";

Go to the top of the page
+Quote Post
gogomania
post
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 7.02.2013

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


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.

Ten post edytował gogomania 5.05.2017, 09:32:44
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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? (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
gogomania
post
Post #6





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 7.02.2013

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


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? (IMG:style_emoticons/default/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. (IMG:style_emoticons/default/smile.gif)

EDIT:
Ahh widzę do czego pijesz. "disabled" faktycznie nie jest potrzebne (IMG:style_emoticons/default/smile.gif)

Ten post edytował gogomania 5.05.2017, 10:51:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.09.2025 - 09:47