[PHP] Jak pokazać formularz, gdy dane nie zostały przesłane, a dane gdy formularz został wypełniony?
Chcesz aby użytkownik zobaczył formularz tylko raz, w momencie wpisywania danych. Po jego wypełnieniu użytkownik ma zobaczyć wpisane dane, już bez formularza.
Nie ma potrzeby pokazywania formularza bez przerwy na stronie. Możesz go ukryć w momencie odebrania danych. Skrypt, który obiera dane z formularza może określić, czy formularz został wypełniony poprawnie - jeżeli tak, nie ma potrzeby aby pokazywać go jeszcze raz.
W prostych przypadkach wystarczy nam do tego jeden warunek logiczny. Całość umieścimy na jednej stronie, np. index.php
<?
$imie=trim($_GET["imie"]);
$nazwisko=trim($_GET["nazwisko"]);
if ($imie<>"" && $nazwisko<>"") {
echo "Twoje imie i nazwisko: $imie $nazwisko";
} else {
echo '
<form action="index.php" method="get">
<table><tr>
<td valign=top>Imię:</td>
<td><input type="text" name="imie" style="width:100px;"></td>
</tr><tr>
<td valign=top>Nazwisko:</td>
<td><input type="text" name="nazwisko" style="width:100px;"></td>
</tr><tr>
<td> </td>
<td><input type="submit" value=" wyślij "></td>
</tr></table>
</form>
';
}
?>
Formularz wysyłany jest metodą GET, więc tym samym sposobem odbieramy dane, a następnie sprawdzamy czy oba pola nie są puste. Jeżeli nie, oznacza to, że ktoś je wypełnił i pokazujemy tylko pola $imie i $nazwisko.
Jeżeli pola nie zostały wypełnione bądź chociaż jedno jest puste, pokazujemy formularz.