Kodulehe loomine, 18. kord

Tagasiside vormi edastamise kohta

Kui kasutaja on vormi edastanud ja kiri on ära saadetud, antakse kasutajale sellest ka teada.

Selleks kasutame php programmeerimiskeelt:

  1. muudame olemasoleva lehe kontakt.html php-failiks kontakt.php
  2. muudame senise vormi sisu, märgendite <form> ja </form> vahel olevat on järgmiselt:
<?php
if (isset($_GET['t']))
{
?>
 <div class="row">
  <div class="col">
   <div class="keskel">
   Suur tänu! Teie kiri läks teele!
   </div>
  </div>
 </div>
 <div class="row">
  <div class="col">
   <div class="keskel">
   <a class="btn btn-outline-success" href="kontakt.php" role="button">Uuesti vormi täitma</a>
   </div>
  </div>
 </div>
<?php
unset($_GET['t']);
}
else
{
?>
 <div class="row">
  <div class="col"> 
   <input class="form-control" type="text" id="nimi" name="nimi" placeholder="Sisestage palun oma nimi" required>
   <div class="valid-feedback">
   Sobib!
   </div>
   <div class="invalid-feedback">
   Palun sisesta nimi!
   </div> 
  </div>
  <div class="col">
   <input class="form-control" type="email" id="epost" name="epost" placeholder="Sisestage palun oma e-posti aadress" required> 
   <div class="valid-feedback">
   Sobib!
   </div>
   <div class="invalid-feedback">
   Palun sisesta korrektne e-posti aadress!
   </div> 
  </div>
 </div>
 <div class="row">
  <div class="col">
   <label for="sonum">Sõnum:</label>
   <textarea class="form-control" id="sonum" name="sonum" rows="3" columns="30" placeholder="Palun kirjutage siia oma sõnumi sisu"></textarea> 
  </div>
  <div class="col">
   <div class="form-check">
    <input class="form-check-input" type="radio" id="valik1" name="valikud" value="Roblox"> 
    <label class="form-check-label" for="valik1">Roblox</label>
   </div> 
   <div class="form-check">
    <input class="form-check-input" type="radio" id="valik2" name="valikud" value="Minecraft"> 
    <label class="form-check-label" for="valik2">Minecraft</label>
   </div> 
   <div class="form-check">
    <input class="form-check-input" type="radio" id="valik3" name="valikud" value="Muu"> 
    <label class="form-check-label" for="valik3">Muu</label>
   </div> 
  </div>
 </div>
 <div class="row">
  <div class="col">
   <label class="form-control-label" for="autod">Valige palun oma lemmikauto:</label> 
   <select class="form-select" name="auto" id="autod" form="andmevorm"> 
    <option value="Volvo">Volvo</option> 
    <option value="Saab">Saab</option> 
    <option value="Toyota">Toyota</option> 
    <option value="Audi">Audi</option> 
   </select>
  </div>
  <div class="col">
   <div class="form-check"> 
    <input class="form-check-input" type="checkbox" id="soiduvahend1" name="soiduvahend1" value="Ratas"> 
    <label class="form-check-label" for="soiduvahend1"> Mul on jalgratas</label> 
   </div>
   <div class="form-check">
    <input class="form-check-input" type="checkbox" id="soiduvahend2" name="soiduvahend2" value="Touks"> 
    <label class="form-check-label" for="soiduvahend2"> Mul on tõukeratas</label>
   </div>
  </div>
 </div>
 <div class="row"> 
  <div class="d-grid col-6"> 
   <input class="btn btn-outline-secondary" type="reset" value="Tühista">
  </div>
  <div class="d-grid col-6"> 
   <input class="btn btn-outline-success" type="submit" value="Edasta"> 
  </div>
 </div>
<?php
}
?>

kus

1. php kood algab märgendiga <?php ja lõpeb märgendiga ?>

2. esmalt kontrollitakse, kas muutujale $_GET[‘t’] on omistatud mingi väärtus (kasutades funktsiooni isset()):

if (isset($_GET['t']))

3. kui JAH, siis:

3.1 kuvatakse teade Suur tänu! Teie kiri läks teele! ja kuvatakse nupp tekstiga Uuesti vormi täitma, mille all on link lehel kontakt.php

3.2 muudetakse muutuja $_GET[‘t’] lähtestatakse (kasutades funktsiooni unset()):

unset($_GET['t']);

4. kui EI, siis kuvatakse meie kirja andmete edastamise vorm:

4.1 lehe esialgsel kuvamisel

4.2 pärast kirja edastamist vajudates nupule Uuesti vormi täitma

Ja failis andmed.php asendamine viimase rea uuega:

rea echo “Kiri sai saadetud!”; asemel

header('Location: kontakt.php?t=1');

Selle tulemusena liigutakse pärast kirja saatmist tagasi lehele kontakt.php (kasutades funktsiooni header(), kus parameetri Location väärtuseks on kontakt.php, koos GET-parameetriga ‘t’ $_GET[‘t’]. GET-parameeter lisatakse failinimele ? märgiga ja t on muutuja nimetus, millele omistatakse väärtus 1. Kui on soov edastada mitu GET-parameetrit, siis lisatakse need üksteise järele & märkidega, nt:

header('Location: kontakt.php?param1='esimene'&param2='teine');