Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: pudotusvalikko-ongelmia

Sivun loppuun

kasetti [25.03.2004 14:31:00]

#

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?

Cursed [25.03.2004 14:39:03]

#

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

Cursed [25.03.2004 15:04:15]

#

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

kasetti [25.03.2004 15:31:04]

#

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>

Cursed [25.03.2004 15:39:27]

#

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

kasetti [25.03.2004 15:51:09]

#

Kyllä. Nyt sain korjailtua sen toimivaksi. Kiitos. Nyt tuon pudotusvalikon kimppuun...

kasetti [25.03.2004 16:15:07]

#

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).

Cursed [25.03.2004 16:35:50]

#

Sori, virhe. Toisesta (jälkimmäisestä) pois "checked"

-Cursed

kasetti [14.07.2004 12:14:45]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta