szpula
25.05.2004, 20:31:10
Na stronie widać auto id i marka_nazwa. Gdy klikam edytuj wyświetla mi się rozwijane pole listy ze wszystkimi markami jakie są w tabeli marka, ale domyslnie jest zawsze pierwsza marka z tabeli marka, a chcialbym zeby byla domyslna ta marka która wybralem do edycji.
tabele: auta: auto_id, auto_marka_id
marka: marka_id, marka_nazwa
[php:1:1a1686a379]<?php
<?php
function edit_auta($auto_id)
{
w zapytaniu pobierzemy również auto_marka_id
$r = mysql_query("SELECT auto_id , marka_nazwa, auto_marka_id , WHERE marka_id=auto_marka_id and auto_id = $auto_id") or die("error: auta.php -
edit_auta");
$a = mysql_fetch_array($r);
echo '<form action="auta.php" method="get">';
echo '<input type="hidden" name="action" value="post_edit">';
echo '<input type="hidden" name="auto_id" value="'.$a["auto_id"].'">';
echo '<table width="320" align="center">';
echo '<tr>';
echo '<td width="60">Marka</td>';
// tutaj dodamy select ze wszystkimi markami z tabeli marka
echo '<td width="260"><select name="auto_marka_id">';
$r2 = mysql_query("SELECT * FROM marka") or die("error: auta.php - edit_auta");
?>[/php:1:1a1686a379]
No i tu chyba gdzieś jest blad...?
[php:1:1a1686a379]<?php
while($a2 = mysql_fetch_array($r2))
{
if($a2['marka_id']==$a['auto_marka_id']) // tutaj sprawdzamy, czy dana marka
// w selekcie jest aktualnie przypisana do danego auta marka i jesli tak, to ta
// pozycja będzie domyślnie zaznaczona
{
echo '<option value="'.$a2['marka_id'].'"
checked>'.$a2['marka_nazwa'].'</option>';
}
else
{
echo '<option value="'.$a2['marka_id'].'">'.$a2['marka_nazwa'].'</option>';
}
}
echo '</select></td></tr>';
?>[/php:1:1a1686a379]
lukaswoj
25.05.2004, 20:40:01
Błędem jest użycie słowa "checked" - o ile przy checkbox'ach tak powinno być o tyle w option'sach

powinno być słowo "selected"
szpula
25.05.2004, 21:13:37
niestety dalej nie dziala:(
lukaswoj
25.05.2004, 21:21:51
Niemożliwe, musi działać.
Sprawdź źródło strony, która ci się wyświetla, jeśli jest tam w jednym z option'sów słowo selected i ta pozycja nie jest domyślnie wybrana to sie poddam oficjalnie
Liko
25.05.2004, 21:24:21
To "wyprintuj" ten kod w pętli jako tekst, a nie jako forumlarz i zobacz czy wogóle następuje równość pomiedzy tymi dwoma zmiennymi.
szpula
25.05.2004, 21:29:23
w źródle nie ma żadnego pola selected
Liko
25.05.2004, 21:31:37
[php:1:94d2a50374]<?php
while($a2 = mysql_fetch_array($r2))
{
if($a2['marka_id']==$a['auto_marka_id']) // tutaj sprawdzamy, czy dana marka
// w selekcie jest aktualnie przypisana do danego auta marka i jesli tak, to ta
// pozycja będzie domyślnie zaznaczona
{
echo '<option value="'.$a2['marka_id'].'" selected>'.$a2['marka_nazwa'].'</option>';
}
else
{
echo '<option value="'.$a2['marka_id'].'">'.$a2['marka_nazwa'].'</option>';
}
}
echo '</select></td></tr>';
?>
[/php:1:94d2a50374]
I tak jak napisałem wcześniej wyprintuj wartości zmiennych i zobacz czy wogóle kiedyś zachodzi równość.
szpula
25.05.2004, 21:38:13
o to mi wlasnie chodzilo. dzieki bardzo.dziala bez zarzutu:)
Liko
25.05.2004, 21:40:31
Cytat
Błędem jest użycie słowa "checked" - o ile przy checkbox'ach tak powinno być o tyle w option'sach

powinno być słowo "selected"
@Szpula: Ty się naucz czytać bo
lukaswoj napisał Ci dokładnie to co ja tylko ja Ci to wstawiłem w kod więc następnym razem czytaj uważnie kod. Daj punkcik lukasowi :!:
szpula
25.05.2004, 21:58:54
wpisalem na poczatku selected zamiast checked jak lukas napisal, ale wtedy cos mi jeszcze nie dzialalo , mialem gdzie indziej blad.
dzieki!
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.