redelek
7.07.2011, 08:50:24
Witam,
Mam taki mały problemik i obchodzę go sobie ale chciałem się Was podpytać czy jest na to może jakieś "lekarstwo".
Problem mam w tym , że pole select pobiera dane bazy danych. Wszystko działa super.
Niestety problem jest podczas edycji . Chciałbym , żeby pole select ustawiało się na tej opcji która została zapisana w bazie, a jednocześnie, żeby były dostępne
inne opcje które są w bazie kategorie.
Chodzi o to że dodaje rekord do bazy
tytul: Kubuś Puchatek
kategoria: film ( oczywiście tu mam do wyboru książka, film, gazeta,inne)
opis: dddddd
IBD: 3232323
Moje obejście:
Jak przechodzę do edycji to pobieram dane z tabeli głównej, ale dane do pola select są danymi z tabeli kategorie. Dodałem przy polu select pole txt z opisem AKTUALNA KATEGORIA TO : i tu pobieram dane z głównej bazy. Niestety nieraz zapominam tego zmienić i robi się kaszana bo po edycji i zapisaniu rekordu film wskakuje do kategorii książka ( bo to pierwsze pole z bazy i pierwsze widoczne w polu select.
Czy jest możliwość ustawienia pola select tak żeby wyświetlał aktualną kategorię z głównej bazy, ale dodatkowo dane z bazy kategorii?
Próbowałem jakoś scalić dane ale wtedy mam dwa rekordy takie sam czyli w select widzę książka, film, film( pobrany z głównej bazy), gazeta, inne.
Można to jakoś rozwiązać ? Dzięki za pomoc
Daiquiri
7.07.2011, 09:09:06
A nie możesz zwyczajnie sprawdzać czy wartość tego selecta == to co masz w bazie i jeżeli tak to dodać do tej pozycji selected="selected"?
redelek
7.07.2011, 09:36:35
a możesz troszkę rozjaśnić ?
Mam tak podczas edycji
echo '<TD class="label">Kategoria: </TD> <TD class="data"><select name="fcategory">';
if ($iduser == "0"){
echo '<option style="color:blue;" value="'.$id_category.'">'.$usercategory.'</option>'; }else {
echo '<option style="color:green;" value="'.$id_category.'">'.$usercategory.'</option>';
Daiquiri
7.07.2011, 09:50:55
Tam gdzie "wyświetlasz" <option> dodajesz w środku if($aktualna_wartosc_z_bazy == $wyswietlana_wartosc) echo 'select="selected";
redelek
7.07.2011, 10:13:51
no niestety pomimo tego ustawienia nadal pole select nie zmienia się na aktualny rekord

cały czas jest na tym co pobrał z bazy
Kolor się jego zmienił , ale nie ustawił się na pierwszej pozycji nadal jest książka
$zapytanie = mysql_query ("SELECT * FROM $M_TABELA2 WHERE iduser='0' OR iduser=$IDUSER");
echo '<TD class="label">Kategoria: </TD> <TD class="data"><select name="fcategory" >';
if ($row['usercategory']==$usercategory){
echo '<option style="color:blue;" value="'.$id_category.' selected="selected"">'.$usercategory.'</option>';
}else {
echo '<option style="color:green;" value="'.$id_category.'">'.$usercategory.'</option>'; }
}
echo'</select> <span class="inf"> Obecnie kategoria </span><strong>'.$row['usercategory'].'</strong></TD></tr>';
oki działa po prostu na początku trzeba było to ustawić.
Dzięki dzięki
Daiquiri
7.07.2011, 10:14:47
Nie wygodniej będzie w ten sposób?
echo '<option'; if ($row['usercategory']==$usercategory) echo 'select="selected"'; echo '>'.$usercategory.'</option>'; } // itd.
user767
7.07.2011, 15:17:01
było 10 razy na forum, zobacz w moich tematach masz strukturalnie i obiektowo