Cytat(trueblue @ 14.07.2020, 22:02:34 )
Rozumiem, że asortyment jest na sztywno w plikach, a nie w bazie. Ok.
Dokładnie tak.
Dobrze, to teraz pokazuję bebechy. Stronkę uprościłem, żeby niepotrzebne elementy nie odwracały uwagi, ale to, co istotne, raczej tutaj jest.
Najpierw skrypt php:
<?php
function sprawdz($zmienna){
$new = htmlspecialchars(stripslashes(strip_tags(trim($zmienna))));
return $new;
}
$Email = sprawdz($_POST['Email']);
$KL = sprawdz($_POST['zupa']);
$ML = sprawdz($_POST['kotlet']);
$OM = sprawdz($_POST['deser']);
$trzy = sprawdz($_POST['trzy']);
$suma = sprawdz($_POST['cakePrice']);
$dowoz = sprawdz($_POST['dowoz']);
$Komentarz = sprawdz($_POST['Komentarz']);
$naglowek = 'MIME-Version: 1.0' . "\r\n";
$naglowek .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$naglowek .= 'From: Strona-Zamowienie' . "\r\n";
$mail = "Od kogo: $Email <br /> ";
$mail .= "Wybor: $selectedcake <br />";
$mail .= "Dowoz: $dowoz <br />";
$mail .= "Komentarz: $Komentarz <br />";
if (!mail("mail@mail.pl", "Strona Formularz", $mail, $naglowek)){echo "Błąd";}
else {echo "Dziękujemy za złożenie zamówienia, smacznego.";}
?>
Teraz stronka:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Czas_na_obiad</title>
<script type="text/javascript">
var cake_prices = new Array();
cake_prices["KL"]=16;
cake_prices["ML"]=21;
cake_prices["OM"]=12;
cake_prices["trzy"]=31;
// Here, we need to take user's the selection from radio button selection
function getCakeSizePrice()
{
var cakeSizePrice=0;
//Get a reference to the form id="cakeform"
var theForm = document.forms["cakeform"];
//Get a reference to the cake the user Chooses name=selectedCake":
var selectedCake = theForm.elements["selectedcake"];
for(var i = 0; i < selectedCake.length; i++)
{
//if the radio button is checked
if(selectedCake[i].checked)
{
//we set cakeSizePrice to the value of the selected radio button
cakeSizePrice = cake_prices[selectedCake[i].value];
break;
}
}
return cakeSizePrice;
}
//sprawdzenie, czy ma być dowóz
function candlesPrice()
{
var candlePrice=0;
//Get a reference to the form id="cakeform"
var theForm = document.forms["cakeform"];
//Get a reference to the checkbox id="dowoz"
var dowoz = theForm.elements["dowoz"];
//If they checked the box set candlePrice to 10
if(dowoz.checked==true)
{
candlePrice=10;
}
//finally we return the candlePrice
return candlePrice;
}
function calculateTotal()
{
//Here we get the total price by calling our function
//Each function returns a number so by calling them we add the values they return together
var cakePrice = 0 + getCakeSizePrice() + candlesPrice();
//display the result
var divobj = document.getElementById("totalPrice");
divobj.style.display="block";
divobj.innerHTML = "Łaczna wartosć zamówienia "+cakePrice +" zł";
}
function hideTotal()
{
var divobj = document.getElementById("totalPrice");
divobj.style.display="none";
}
function Validate(theForm)
{
if (theForm.Email.value == "")
{
alert("Prosze wpisac adres poczty elektronicznej");
theForm.Email.focus();
return (false);
}
return (true);
}
</script>
</head>
<body bgcolor="#eeeeee">
<form method="POST" action="mail-cambiado.php" onsubmit="return Validate(this)" name="ofrm" id="cakeform">
<table border="0" width="90%" align="center"><tr><td>
<div>
<div class="cont_order">
<h2><font color="#9D0000"> Zamówienie</font></h2>
<h3><font color="#9D0000">Prosimy wybrać zamawiane danie:</font></h3>
<label class='radiolabel'><input type="radio" name="selectedcake" value="KL" onclick="calculateTotal()" /> 1 x <b>Zupa</b> <font color="#9D0000">(10,-)</font></label><br/>
<label class='radiolabel'><input type="radio" name="selectedcake" value="ML" onclick="calculateTotal()" /> 1 x <b>Kotlet</b> <font color="#9D0000">(15,-)</font></label><br/>
<label class='radiolabel'><input type="radio" name="selectedcake" value="OM" onclick="calculateTotal()" /> 1 x <b>Deser</b> <font color="#9D0000">(6,-)</font> </label></b><br/>
<font color="#9D0000">albo</font><br/>
<label class='radiolabel'><input type="radio" name="selectedcake" value="trzy" onclick="calculateTotal()" /> <b>Wszystkie trzy dania</b> <font color="#9D0000">(25,-)</font></label><br/>
<br/><br> <br/>
<label><font color="#9D0000"><b>+ Napiwek dla kelnera lub kierowcy</b></font> <font color="#9D0000">6,-</font> </label>
</p> <br/>
<label for='dowoz' class="inlinelabel"><font color="#9D0000"><b>Dowoz?</b></font>
<font color="#9D0000">(+ 10,-)</font> <input type="checkbox" id="dowoz" name='dowoz' onclick="calculateTotal()" /></label>
</p> <br/> <br/>
<font color="#008800" size="5"><div id="totalPrice"></div></font>
</div>
</td></tr>
<tr><td>
<h3><font color="#9D0000">Prosimy podać adres e-mail, na który ma zostać wysłane potwierdzenie:</font></h3>
<table border="0" cellpadding="0" width="550" id="table1">
<tr>
<td width="50"> </td>
<td width="450"><input type="text" name="Email" size="30" tabindex="1"></td>
</tr>
<tr>
<td width="50"> </td>
<td width="450"> </td>
</tr>
</table>
<h3><font color="#9D0000">Uwagi dla kucharza?</font> </h3>
<textarea name="Komentarz" cols="50" rows="5"> </textarea>
<p> <p>
<p> </p>
</td></tr>
</table>
<table border="0" cellpadding="0" width="550" id="table3">
<tr>
<td width="563">
<p align="center">
<input type="submit" value="OK, zamawiam." name="subButton" tabindex="50">
</p>
</tr>
</table>
</form>
</body>
</html>
Zapewne są tu składniowe błędy w html-u (już nie pamiętam, czy przepuszczałem to przez jakiś walidator), ale -przypomnę-
to kiedyś działało! A w tej chwili na e-mejla dostaję jedynie adres zamawiającego i ew. informację o dowozie, brak natomiast komentarza i najważniejszego: informacji o tym, co wybrał zamawiający.
Aha, jeszcze jedno: zdecydowanie wolałbym coś zmienić w ww. kodzie niż zaczynać od zera (np. z PHPMailerem). Stąd moje wysiłki, żeby jednak tę stronkę przywrócić do życia. :-)