Minulla on lomake jossa voi valita pudotusvalikoista vaihtoehtoja (tulevat tietokannasta). Lisäksi löytyy tietenkin normaaleja tekstikenttiä ja niin edespäin...
Miten voidaan pudotusvalikoista ja checkbokseista ottaa arvo niin, että kun sivua päivitetään (esim. kaikkea tarvittavaa tietoa ei ole saatu)pysyisi siellä valittu vaihtoehto samana?
Jos vaikka lomakkeessa seuraavanlainen combo:
<select name="juttu"> <? $res = mysql_query("SELECT id, name FROM taulu"); if (!$res) { TeeJotain(); return; } while ($row = mysql_fetch_assoc($res)) { if ($row['id'] == $_POST['juttu']) echo '<option value="', $row['id'], '" selected>', $row['name'], '</option>'; else echo '<option value="', $row['id'], '">', $row['name'], '</option>'; } ?>
Siinä randomilla jotain mitä tuli mieleen...
-Cursed
Ja tuo checkbox vois mennä jotenkin:
<? if ($_POST['myCheck1'] == 'myValue1') echo '<input type="checkbox" name="myCheck1" value="myValue1" checked>'; else echo '<input type="checkbox" name="myCheck1" value="myValue1" checked>'; ?> TAI <input type="checkbox" name="myCheck1" value="myValue1" <? TarkistaCheckBox('myCheck1', 'myValue1'); ?>> <? function TarkistaCheckBox($chk, $val) { if ($_POST["$chk"] == $val) echo 'checked'; } ?>
-Cursed
pudotusvalikkohomma toimi ihan ok noin mutta tietokantaa tallettui id:n numero. Muokkasin tällaiseksi ja toimii ainakin. Onkohan vaan tässä jotain turhaa?
<select name="testi"> <? $result = mysql_query("SELECT id, nimi FROM taulu"); if (!$result) { echo '<option value="tyhjä">ei löydy nimejä</option>' ; return; } while ($row = mysql_fetch_assoc($result)) { if ($row['id'] == $_POST['nimi']) echo '<option value="', $row['nimi'], '" selected>', $row['nimi'], '</option>'; else echo '<option value="', $row['nimi'], '">', $row['nimi'], '</option>'; } ?> </select>
Pitäis olla:
if ($_POST['testi'] == $row['nimi']) ...
Eli tuossa haussakin tuon id:n hakeminen on turhaa (ei käytetä missään).
Ja kannattaa laittaa vaikka (</select>):
if (!$result) { echo '<option value="tyhjä">ei löydy nimejä</option></select>' ; return; }
-Cursed
Kyllä. Nyt sain korjailtua sen toimivaksi. Kiitos. Nyt tuon pudotusvalikon kimppuun...
checkbox homma toimi oikein ensimmäisellä esimerkillä kun elselauseesta otti pois checked (eikö?, sillä muutenhan se on aina rastitettu). Toinen esimerkki puski fatal errorit..(taisin muokkailla hieman väärin).
Sori, virhe. Toisesta (jälkimmäisestä) pois "checked"
-Cursed
Mitenkähän toteuttaisitte tuollaisen MULTIPLE selectboxin arvon säilyttämisen sivua lataillessa/päivittäessä. Ylläolevan esimerkin mukaan yritin vääntelehtiä mutta en keksinyt ainakaan vielä miten saisin nuo arvot POSTattua ja merkattua SELECTED.
Aihe on jo aika vanha, joten et voi enää vastata siihen.