Witam!
Na lekcji programowania robiliśmy proste ćwiczenie (przygotowanie do e.14). Mieliśmy za zadanie przesłać zawartość formularza metodą post do pliku php. Nauczyciel pokazał nam wygodna metodę.
Wygląda ona tak.
echo "Faktura: ".($_POST['faktura'] == 'on' ? 'Tak' : 'Nie')."<br>";
I odnosi się to do
<input type="checkbox" name="faktura" style="margin-left:8px">
Ogólnie ma to wyglądać tak, że jeśli zaznaczymy checkbox'a to ma wyświetlić na ekranie "tak", a jeśli nie zaznaczymy to ma wyświetlić "nie". Jeśli zaznaczymy to wszystko przebiega zgodnie z planem, lecz jeśli nic nie zaznaczymy, to wyskakuję błąd. Wg mnie, jeśli nic nie zaznaczymy, to metodą post nie jest przesyłany ten checkbox, więc interpreter php nie może znaleźć name="faktura". Nauczyciel twierdzi inaczej. Kazał nam wpisać "@" w wiersz, dokładnie tak.
echo "Faktura: ".@($_POST['faktura'] == 'on' ? 'Tak' : 'Nie')."<br>";
Błędu nie pokazuje, lecz znak małpy z tego co zrozumiałem, ma omijać błędy. To jak to naprawić bez @ ? Dlaczego on wyskakuje i jak się go pozbyć ?
Cały kod. Html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="content-type" content="text-html">
<meta name="description" content="opis">
<meta name="author" content="ja">
</head>
<body>
<h2>Zamówienie</h2> <br>
<form action="zamowienie.php" method="post">
Proszę o podanie imienia <input type="name" name="name" style="margin-left:50px"><br>
Proszę o podanie nazwiska <input type="name" name="second_name" style="margin-left:38px"><br>
Proszę o przygotowanie faktury <input type="checkbox" name="faktura" style="margin-left:8px"> <br>
<input type="radio" name="napoj" value="herbata" checked="checked"> herbata <br>
<input type="radio" name="napoj" value="kawa"> kawa <br>
<input type="radio" name="napoj" value="pepsi"> pepsi <br>
<input type="radio" name="napoj" value="woda mineralna"> woda mineralna <br>
<input type="submit" value="wyślij">
<input type="reset" value="reset">
</form>
</body>
</html>
Php
<?php
//$faktura = $_POST['faktura'];
$napoj = $_POST['napoj'];
$name = $_POST['name'];
$second_name = $_POST['second_name'];
echo "Imie: $name <br>";
echo "Nazwisko: $second_name <br>";
echo "Faktura: ".($_POST['faktura'] == 'on' ? 'Tak' : 'Nie')."<br>";
echo "Zamówienie: ";
switch($napoj)
{
case 'herbata': echo "herabata"; break;
case 'kawa': echo "herabata"; break;
case 'pepsi': echo "herabata"; break;
case 'woda mineralna': echo "woda mineralna"; break;
}
echo "<br>";
echo "Zamówienie złożone: ".date('H:i, js F');
?>