Mam formularz składający się z kilku pól input oraz pola select, któe pobiera wartości z bazy danych a następnie zapisuj numer id wybranego pola w bazi danych. Zapis działa poprawnie problem pojawi się w przypadku edycji rekordu pola input wyświetlają się poprawnie natomiast select pokazuje pierwszą wartość niezależnie od wybranej pozycji. Dane z formularza wysyłane są poprzez POST
@energetyk: nigdzie nie przypisujesz dla option atrybutu selected. Musisz porównać wartość ID bieżącego rekordu oraz tego, dla którego edytujesz to pole
@energetyk: if ( $row->id == $entity->sekcja1) echo "selected"; Powyższe nie zadziała w Twoim przypadku, ale $entity to obiekt, który reprezentuje aktualnie edytowany rekord w bazie. O selected przeczytasz np tutaj: https://www.w3schools.com/TagS/att_option_selected.asp Jeśli option nie ma ustawionego selected to wtedy domyślnie wybrany jest pierwszy element Jeśli nie rozumiesz którejś części to konkretnie napisz której :)
@energetyk: wstaw na jakiegoś pastebin większy fragment kodu. Ale mam wrażenie, że nie do końca wiesz co i jak piszesz. Znasz podstawy czy modyfikujesz sobie jakiegoś gotowca/kurs?
@masterix: https://pastebin.com/qWTBVF9z Formularz składa się z 6 pól 3 select oraz 3 input. Z pól select zapisuje się numer id wybranego obiektu z listy. Całość działa poprawnie w przypadku edycji pola input wyświetlają się poprawnie natomiast select wyświetla pierwszy wybór z listy.
@energetyk: W żadnym miejscu nie widzę sprawdzania warunku, o którym pisałem poprzednio. Ogólnie widzę b----l w kodzie, więc na spokojnie przeanalizuj to co masz, wyodrębij problematyczny fragment i na nowo przeanalizuj. I napisz jeśli nie rozumiesz oraz najlepiej czego dokładnie nie rozumiesz :)
@energetyk: Formularz przesyłasz postem, ale wczytujesz go (i generujesz) GETem. Dlatego tablica $POST jest pusta. Powinieneś pobrać rekord, który edytujesz do zmiennej np $current i przy wyświetlaniu robisz if($current->miastoid == $row->id) - czyli sprawdzasz czy ID danego miasta jest takie samo jak Twojego edytowanego obiektu. I tak analogicznie dla pozostalych sekcji
if($result2 = $mysqli->query("SELECT id,miasto FROM lubelskie by id")){if($result2->num_rows >0) {
echo "";
while($row = $result2->fetch_object()){
echo "" . $row->miasto . "";
}
echo "";
#programowanie #php #mysql
Powyższe nie zadziała w Twoim przypadku, ale $entity to obiekt, który reprezentuje aktualnie edytowany rekord w bazie. O selected przeczytasz np tutaj: https://www.w3schools.com/TagS/att_option_selected.asp Jeśli option nie ma ustawionego selected to wtedy domyślnie wybrany jest pierwszy element
Jeśli nie rozumiesz którejś części to konkretnie napisz której :)
Formularz składa się z 6 pól 3 select oraz 3 input. Z pól select zapisuje się numer id wybranego obiektu z listy. Całość działa poprawnie w przypadku edycji pola input wyświetlają się poprawnie natomiast select wyświetla pierwszy wybór z listy.
php
if($result = $mysqli-query("SELECT id,nazwa FROM miasto order by id")){
if($result->num_rows >0) {
echo