Kirjautuminen

Haku

Tehtävät

Koodit: HTML, PHP: Lomakkeen käsittely

Kirjoittaja: Antti Laaksonen

Kirjoitettu: 12.01.2008 – 12.01.2008

Tagit: ohjelmointitavat, koodi näytille, vinkki, web

Tässä on esimerkkejä HTML-sivulla olevan lomakkeen kautta lähetettyjen tietojen käsittelystä PHP-skriptissä.

Näissä lomakkeissa lomakkeen näyttävä HTML-koodi ja tiedot käsittelevä PHP-koodi ovat samassa tiedostossa. Tämän vuoksi aluksi tutkitaan, onko tiedot jo lähetetty. Tämä selviää katsomalla, onko lomakkeen lähetysnappiin liittyvä muuttuja asetettu. Jos tiedot on lähetetty, muodostetaan uusi sivu niiden perusteella. Muussa tapauksessa näytetään valmiina oleva lomake.

Valintanapeissa (radio.php) jokaiselle samaan ryhmään kuuluvalle napille annetaan sama nimi. Seurauksena on, että vain yksi ryhmän napeista voi olla valittuna.

Kahdessa lomakkeessa (checkbox.php ja select2.php) käyttäjä voi valita monta valintaruutua ja listan kohtaa. Tällöin valinnat näkyvät PHP:ssä taulukkona ja niitä voi käsitellä esim. foreach-silmukalla.

Skriptien toimintaa voi katsella näissä osoitteissa:

http://koti.mbnet.fi/pllk/muut/radio.php
http://koti.mbnet.fi/pllk/muut/checkbox.php
http://koti.mbnet.fi/pllk/muut/select.php
http://koti.mbnet.fi/pllk/muut/select2.php

radio.php

<?php

if (isset($_POST['nappi'])) {
    if (empty($_POST['spuoli'])) {
        echo "Et ilmoittanut sukupuolta!<br>";
    } else {
        echo "Sukupuoli: " . $_POST['spuoli'] . "<br>";
    }
    if (empty($_POST['akieli'])) {
        echo "Et ilmoittanut äidinkieltä!<br>";
    } else {
        echo "Äidinkieli: " . $_POST['akieli'] . "<br>";
    }
    die();
}

?>

<form action="radio.php" method="post">

<p>Sukupuoli:<br>
<input type="radio" name="spuoli" value="mies"> mies
<input type="radio" name="spuoli" value="nainen"> nainen
</p>

<p>Äidinkieli:<br>
<input type="radio" name="akieli" value="suomi"> suomi
<input type="radio" name="akieli" value="ruotsi"> ruotsi
<input type="radio" name="akieli" value="saame"> saame
</p>

<input type="submit" name="nappi" value="Lähetä">

</form>

checkbox.php

<?php

if (isset($_POST['nappi'])) {
    if (empty($_POST['luvut'])) {
        echo "Et valinnut mitään lukua!";
    } else {
        echo "Valitsit nämä luvut:<br>";
        foreach ($_POST['luvut'] as $luku) {
            echo $luku . "<br>";
        }
        echo "Yhteismäärä: " . count($_POST['luvut']);
    }
    die();
}

?>

<form action="checkbox.php" method="post">

<input type="checkbox" name="luvut[]" value="1"> yksi <br>
<input type="checkbox" name="luvut[]" value="2"> kaksi <br>
<input type="checkbox" name="luvut[]" value="3"> kolme <br>
<input type="checkbox" name="luvut[]" value="4"> neljä <br>
<input type="checkbox" name="luvut[]" value="5"> viisi <br>

<input type="submit" name="nappi" value="Lähetä">

</form>

select.php

<?php
$nimet = array("tammi", "helmi", "maalis", "huhti", "touko", "kesä",
               "heinä", "elo", "syys", "loka", "marras", "joulu");

if (isset($_POST['nappi'])) {
    echo "Valittu kuukausi: " . $nimet[$_POST['kuukausi']] . "kuu";
    die();
}

?>

<form action="select.php" method="post">

<p>Valitse kuukausi:<br>
<select name="kuukausi">
<?php
for ($i = 0; $i < 12; $i++) {
    echo "<option value=\"$i\">" . $nimet[$i] . "kuu";
}
?>
</select>
</p>

<input type="submit" name="nappi" value="Lähetä">

</form>

select2.php

<?php
$nimet = array("tammi", "helmi", "maalis", "huhti", "touko", "kesä",
               "heinä", "elo", "syys", "loka", "marras", "joulu");

if (isset($_POST['nappi'])) {
    if (empty($_POST['kuukaudet'])) {
        echo "Et valinnut mitään kuukautta!";
    } else {
        echo "Valitsit nämä kuukaudet:<br>";
        foreach ($_POST['kuukaudet'] as $kuukausi) {
            echo $nimet[$kuukausi] . "kuu<br>";
        }
        echo "Yhteismäärä: " . count($_POST['kuukaudet']);
    }
    die();
}

?>

<form action="select2.php" method="post">

<p>Valitse kuukaudet:<br>
<select name="kuukaudet[]" size="6" multiple>
<?php
for ($i = 0; $i < 12; $i++) {
    echo "<option value=\"$i\">" . $nimet[$i] . "kuu";
}
?>
</select>
</p>

<input type="submit" name="nappi" value="Lähetä">

</form>

Kommentit

gamehouse [12.01.2008 10:50:50]

#

Hmm.. Mielenkiintoinen "opas" aloittelijoille (kuten minulle :P)

tsuriga [13.01.2008 09:22:08]

#

Käyttäjältä tulevan datan filteröintiin vaikkapa PHP:n oma Filter-palikka.

Juhko [20.03.2009 17:36:40]

#

Sää et kertonu mitään GET:istä. :/

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta