Mam następujący problem.
Przygotowałem pewien formularz, gdzie są tradycyjne selecty, np:
Do bazy (MySQL) wszystko dodaje się poprawnie. Problem jest, kiedy ładuję formularz do edycji, ponieważ wtedy zmienne z select nie mają zaznaczonych tych z bazy, a te, które ja mam w formularzu oznaczone jako select (w powyższym przykładzie value=1).
Zrobiłem więc dodatkowy plik, dla przykładu wojewodztwa.php, który wygląda tak:
<? $wojewodztwa[1] = "dolnośląskie"; $wojewodztwa[2] = "kujawsko-pomorskie"; $wojewodztwa[3] = "lubelskie"; [...] $wojewodztwa[15] = "wielkopolskie"; $wojewodztwa[16] = "zachodniopomorskie"; ?>
W pliku index.php, zamieniłem select z pierwszego źródła na następujący:
if ($akcja=="form") { foreach ($wojewodztwa as $klucz=>$wartosc) { if ($wojewodztwo==$klucz) $wybierz = "selected=\"selected\""; else $wybierz=""; $select1 .= "<option value=\"$klucz\" $wybierz>$wartosc</option>"; } echo <<<KONIEC <form action="$skrypt" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input type="hidden" name="akcja" value="dodaj"> <input type="hidden" name="id" value="$id"> <table border=0> <tr><td>Województwo:</td><td> <input type="hidden" name="MAX_FILE_SIZE" value="200000" /> <input type="hidden" name="id" value="$id" /> <select name="wojewodztwo"> $select1 </select>
W tym przypadku działa poprawnie, tj. formularz do edycji pamięta zaznaczone dane.
Problem polega na tym, że mam więcej pól select.
Nie udało mi się znaleźć informacji, jak połaczyć parokrotnie foreach -kiedy zdefiniowałem oprócz województwa inne selecty, a foreach doklejałem klolejne, zmieniajac zmienne, index.php wyświetla "Parse error: syntax error, unexpected $end in /URL/index.php on line 328".
Drugim rozwiązaniem jest ominięcie tablic i pobranie tego jakos z bazy.
Poproszę o solucję, nie wiem jak pobrać "selected" z selectów przy edycji formularza.