<< Tilbage

PHP og html-formularer

Vil man kommunikere med brugeren er der ingen vej uden om formularer. De enkelte afsnit forklarer hvordan du fra php får fat i de informationer brugeren giver - enten i tekstfelter, selectbokse, radiobokse eller checkbokse. Har du endnu ikke lært hvordan man laver formularer, så vil jeg tillade mig at henvise til en artikel fra html.dk.

Tekstfelter

Jeg formoder at du har nogenlunde styr på html-delen, ellers kommer her en lille opfrisker.

Kode:
1.
2.
3.
4.
<form action="formular.php" method="post">
    <input type="text" name="mitfelt">
    <input type="submit" value=" ok ">
</form>
Resultat:

Action attributen fortæller hvor formularen skal postes til (filnavnet). formular.php er navnet på dette dokument. Method attributen fortæller hvordan formularen skal postes. Husk at give tekstfeltet et navn (i eksemplet har jeg kaldt feltet mitfelt)

Formålet er at få indholdet af tekstfeltet ind i en variabel, så at vi kan bruge indholdet i vores php-script. Så snart brugeren har postet formen (dvs. trykket på submit knappen), så har vi fra php adgang til det brugeren har skrevet, ved at skrive $_POST['navn_på_mit_felt'] (samme metoder bruger man iøvrigt til alle formularelementer). Eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
<?php
echo $_POST['mit_tekst_felt'];
?>

<form action="formular.php" method="post">
    <input type="text" name="mit_tekst_felt">
    <input type="submit" value=" ok ">
</form>
Resultat:

Prøv at skrive noget i feltet og tryk på knappen. I linje 2 skriver vi indholdet af feltet ud på skærmen. Den skriver selvfølgelig først noget når man har udfyldt feltet og sendt formularen.

I eksemplet kan vi altså tilgå indholdet af det brugeren skriver i tekstfeltet, ved at skrive $_POST['mit_tekst_felt'] hvor mit_tekst_felt er navnet på tekstfeltet.

Store tekstfelter (textareas) fungerer på samme måde. Man giver feltet et navn og tilgår indholdet med $_POST['navn_på_felt']. Eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
<?php
echo $_POST['besked'];
?>

<form action="formular.php" method="post">
    <textarea name="besked" style="width: 200px; height: 85px;">Skriv noget</textarea><br>
    <input type="submit" value=" ok ">
</form>
Resultat:

Felttypen "password" kan bruges på samme måde som et almindeligt tekstfelt.

Selectbokse (drowndowns)

Vi tager udgangspunkt i et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
echo $_POST['valg'];
?>

<form action="formular.php#select" method="post">
    Livret: 
    <select name="valg">
        <option value="pizza">Pizza helt klart</option>
        <option value="mcd">Mc donalds</option>
        <option value="andet">Hmm.. andet</option>
    </select>
    <input type="submit" value="ok">
</form>
Resultat:
Livret:

(Forklaring på form tag'et kan ses i afsnittet ovenfor). Læg mærke til at vi har givet selectboksen et navn, nemlig valg - det er navnet vi skal bruge til at indentificere feltet fra php. Teksten der står mellem <option> og </option> er udelukkende det brugeren ser når han/hun vælger fra selectboksen. Value attributen er til gengæld den reelle værdi som vi henter ud fra php-scriptet. Tryk på ok i eksemplet og prøv.

Radioknapper

Radioknapperne fungerer på samme måde som selectboksene (se afsnittet ovenfor), så vi springer lige ud i et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?php
if (isset($_POST['film']))
{
    echo 
"Du valgte: " $_POST['film'];
}
?>

<form action="formular.php#radio" method="post">
    Ynglingsfilm: <br>
        <input type="radio" name="film" value="titanic"> Titanic <br>
        <input type="radio" name="film" value="gotmail"> You've got mail <br>
        <input type="radio" name="film" value="sleepless"> Sleepless in Seattle<br>
    <input type="submit" value=" ok ">
</form>
Resultat:
Ynglingsfilm:
Titanic
You've got mail
Sleepless in Seattle

Bemærk at alle radioknapperne skal have samme navn (i eksemplet film), da de tilhører den samme gruppe/valg. Value attributen er den værdi vi henter ud af fra php (dvs. hvis man fx vælger "You've got mail", så får vi "gotmail" ud). Værdien af valget henter vi ud ved at bruge variablen $_POST['film'].

Checkbokse

Checkboksene er en smule mere komplicerede, idet brugeren har mulighed for at at vælge mere end én værdi. I stedet for at få en streng ud med det valg brugeren har foretaget (eller den tekst han har skrevet), så får vi i stedet et array ud. Lad os prøve med et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?php
echo "<pre>";
print_r($_POST['interesser']);
echo 
"</pre>";
?>

<form action="formular.php#check" method="post">
    Hvad er dine interesser? <br>
    <input type="checkbox" name="interesser[]" value="koslagtning"> Koslagtning <br>
    <input type="checkbox" name="interesser[]" value="sortarbejde"> Sort arbejde <br>
    <input type="checkbox" name="interesser[]" value="bilophugning"> Bilophugning <br>
    <input type="checkbox" name="interesser[]" value="andet"> Andet <br>
    <input type="submit" value=" ok ">
</form>
Resultat:

Hvad er dine interesser?
Koslagtning
Sort arbejde
Bilophugning
Andet

Prøv at krydse nogle af i eksemplet, tryk ok og se hvordan array'et udvider sig alt efter hvilke muligheder du vælger. $_POST['interesser'] kommer altså til at indeholde et array med de valg brugeren foretager.

Et eksempel mere:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?php
if (isset($_POST['konvalg'])) //Har brugeren sendt formularen?
{
    foreach(
$_POST['konvalg'] as $kon//Kør igennem array'et
    
{
        echo 
"Du har valgt: ".$kon." <br>";
    }
}
?>

<form action="formular.php#check" method="post">
    Hvilket køn er du? <br>
    <input type="checkbox" name="konvalg[]" value="mand"> Mand <br>
    <input type="checkbox" name="konvalg[]" value="kvinde"> Kvinde <br>
    <input type="checkbox" name="konvalg[]" value="intetkon"> Intetkøn <br>
    <input type="checkbox" name="konvalg[]" value="tvekonnet"> Tvekønnet <br>
    <input type="submit" value=" ok ">
</form>
Resultat:
Hvilket køn er du?
Mand
Kvinde
Intetkøn
Tvekønnet

Leder du efter billige usb stik?, så kan du få et Billigt USB stik hos usb.dk

Spørgsmål/forslag/kommentarer rettes til webmaster@phpartikler.dk

Billige USB stik