HTML formos

Formos elementas

Forma yra labai svarbus HTML elementas. Formų dėka naudotpjas gali nusiųsti duomenis į serverį tolimesniam apdorojimui.
Forma gali turėti keletą atributų, tačiau dažniausiai naudojami trys:
  • Atributas action - skirtas nurodyti veiksmui, kuris bus atliktas po formos duomenų pateikimo. Įprastai duomenys siunčiami į kitą failą, kuris randasi tame pačiame serveryje ir apdoroja gautus duomenis.
  • Atributas method - skirtas nurodyti kokiu metodu bus pateikiami duomenys. Metodų yra keletas, tačiau dažniausiai naudojami POST ir GET.
  • Atributas enctype - skirtas nurodyti kokiu būdu bus užkoduoti siunčiami duomenys. Pagal nutylėjimą šio atributo reikšmė yra "application/x-www-form-urlencoded", bet jos nebūtina nurodyti. Tačiau siunčiant per formą failus, svarbu nurodyti šio atributo kitą reikšmę "multipart/form-data", kitu atveju nepavyks išsaugoti ir/ar apdoroti siunčiamą failą.
Norint siųsti failus į serverį per formą, reikia sukurti <input> lauką, kurio tipas būtų file:
<form action="/action_page.php" method="post" enctype="multipart/form-data">
    <label for="myfile">Select a file:</label>
    <input type="file" id="myfile" name="myfile"><br><br>
    <input type="submit">
</form>
Šiuo atveju galima bus pasirinkti vieną failą.
Norint įkelti kelis failus, reiktų papildomai nurodyti atributą multiple:
<form action="/action_page.php" method="post" enctype="multipart/form-data">
    <label for="myfile">Select a file:</label>
    <input type="file" id="myfile" name="myfile" multiple><br><br>
    <input type="submit">
</form>

POST metodas

POST metodo ypatumai:
  • Siunčiami duomenys nėra matomi naudotojui, juos galima pamatyti tik naudojant programavimo įrankius, naršyklės plėtinius ar specializuotas programas.
  • Siunčiamų duomenų kiekis nėra ribojamas, tačiau ribojimai gali būti nustatyti serverio nustatymuose.
  • Galima siųsti failus.
POST metodo kodo pavyzdys
Susikurkite kokį nors HTML failą ir PHP failą pavadinimu example.php. Į HTML failą įdėkite šį kodą:
<form method="post" action="example.php" enctype="multipart/form-data">
    <label for="vardas">Vardas</label>
    <input type="text" name="vardas" id="vardas"><br>
    <label for="pavarde">Pavardė</label>
    <input type="text" name="pavarde" id="pavarde"><br>
    <label for="failas">Failas</label>
    <input type="file" name="failas" id="failas">
    <input type="submit" value="Siųsti">
</form>
Į PHP failą įdėkite šį kodą:
<?php
    print_r($_POST);
    echo "<br>";
    print_r($_FILES);
    echo "<br>";
    $target_file = "uploads/".basename($_FILES["failas"]["name"]);

    if (move_uploaded_file($_FILES["failas"]["tmp_name"], $target_file)) {
        echo $_POST['vardas']." ".$_POST['pavarde']." send a file ".$_FILES["failas"]["name"];
    } else {
        echo "Sorry, there was an error uploading your file.";
    }

GET metodas

GET metodo ypatumai:
  • Siunčiami duomenys yra matomi URL adrese, naršyklės istorijoje ir kt.
  • Nuoroda negali būti ilgesnė nei 2048 simboliai.
  • Negalima siųsti failų.
1. GET metodo kodo pavyzdys
Susikurkite kokį nors HTML failą ir PHP failą pavadinimu example.php. Į HTML failą įdėkite šį kodą:
<form method="get" action="example.php">
    <label for="vardas">Vardas</label>
    <input type="text" name="vardas" id="vardas"><br>
    <label for="pavarde">Pavardė</label>
    <input type="text" name="pavarde" id="pavarde"><br>
    <input type="submit" value="Siųsti">
</form>
Į PHP failą įdėkite šį kodą:
<?php
    print_r($_GET);
    echo "<br>";
    echo "Your name is ".$_GET['vardas']." ".$_GET['pavarde'];
2. GET metodo kodo pavyzdys
Į HTML failą įdėkite šią formą:
<form method="get" action="http://www.google.com/search">
    <input type="text" name="q"/>
    <input type="submit" value="search" />
</form>
P.S. $_POST, $_GET, $_FILES yra globalūs PHP masyvai. PHP kalba turi ir daugiau globalių masyvų.

Formos laukų atributai

Yra trys svarbūs formos laukų atributai:
  • hidden - padaro lauką nematomu, tačiau duomenis galima nuskaityti.
  • readonly - duomenys matomi, jų negalima įvesti, tačiau juos galima nuskaityti.
  • disabled - duomenys matomi, tačiau nei įvesti, nei nuskaityti jų negalima.
Atributas Matomas formoje Galima įvesti Galima nuskaityti
hidden - - +
readonly + - +
disabled + - -

Paskutinį kartą puslapis keistas 2023-03-02

© Joana Katina 2016-2024. Visos teisės saugomos