Avatar billede kimleijensen Nybegynder
17. november 2010 - 22:04 Der er 3 kommentarer og
1 løsning

Bestillingsformular med udregning af total og emailsvar

Hej

Jeg har brug for en formular hvor man kan sammensætte en ordre ud fra et simpelt udvalg:

følgende punkter er krævet
antal af vare X, værdi 320kr
antal af vare Y, værdi 120kr

tilvalg A til vare X (dvs. samme antal så radio-knap er passende) værdi 25kr
tilvalg B til vare Y  -//- værdi 30kr

Tillæg E, en checkbox der ikke kan ændres, værdi 50kr

Navn
Tlf
email

Der skal udregnes en samlet pris og den skal så sendes med oversigt over det bestilte og bestillers navn, tlf og email til både min email og bestillers email og her skal desuden tilføjes info om betaling (kontonr og et par ord om hvorledes)

Håber det er til at forstå og at der er nogen som ikke synes det er en frygtelig opgave :)
Veksler gerne point til rødvin :)

-kim
Avatar billede webweaver Praktikant
17. november 2010 - 23:54 #1
Jamen det har jeg da lavet til dig :-)
Stort set en færdig løsning til dig. Så kan du jo altid rette lidt i det, hvis der er lidt design mæssigt og så videre...

Så det i aktion her, http://www.lasse-jensen.dk/eksperten/order.php

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Tilsend pris</title>

</head>

<body>

<?php

######### MAIL OPSÆTNING. #########

$emne = "Bestilling af vare"; // Emne i mail.
$from = "From: mail@mail.dk"; // Afsender mail.

######### PRIS I KR. #########

$vareXpris = 320;
$vareYpris = 120;
$tilvalgXpris = 25;
$tilvalgYpris = 30;
$konstantEpris = 50;

$showform = TRUE;

// Et regex som tjekker om mailen som bliver indtastet er valid. Vi kalder på den længere nede i scriptet...
define("EMAIL", "/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/");

if (isset($_POST['checked'])) {

if (!$_POST['name']) {

$name_error = "<span style='color: red'>(Udfyld venligst dit navn.)</span>";
$showform = TRUE;

}

if (!$_POST['telefon']) {

$telefon_error = "<span style='color: red'>(Udfyld venligst dit telefon nr.)</span>";
$showform = TRUE;

}

if ($_POST['telefon']) {

if (!preg_match("/^[_0-9]{8}+$/", $_POST['telefon'])) {

$telefon_error = "<span style='color: red'>(Telefon nr. er ugyldigt.)</span>";
$showform = TRUE;

}

}

if (!$_POST['email']) {

$email_error = "<span style='color: red'>(Udfyld venligst din email.)</span>";
$showform = TRUE;

}

if ($_POST['email']) {

if (!preg_match(EMAIL, $_POST['email'])) {

$email_error = "<span style='color: red'>(E-mailen er ikke gyldig.)</span>";
$showform = TRUE;

}

}                                           
   
if (!$name_error && !$post_error && !$telefon_error) {

$name = $_POST['name'];
$telefon = $_POST['telefon'];
$email = $_POST['email'];
$vareXantal = $_POST['vareXantal'];
$vareYantal = $_POST['vareYantal'];
$tilvalgX = $_POST['tilvalgX'];
$tilvalgY = $_POST['tilvalgY'];

##########REGNESTYKKE########

$pris = ($vareXantal * $vareXpris) + ($vareYantal * $vareYpris) + $konstantEpris;

if ($tilvalgX) {

$pris = ($vareXantal * $vareXpris) + ($vareYantal * $vareYpris) + ($vareXantal * $tilvalgXpris) + $konstantEpris;

}

if ($tilvalgY) {

$pris = ($vareXantal * $vareXpris) + ($vareYantal * $vareYpris) + ($vareYantal * $tilvalgYpris) + $konstantEpris;

}

if ($tilvalgX && $tilvalgY) {

$pris = ($vareXantal * $vareXpris) + ($vareYantal * $vareYpris) + ($vareXantal * $tilvalgXpris) + ($vareYantal * $tilvalgYpris) + $konstantEpris;

}

echo "Der er blevet sendt en mail afsted til dig.<br>";
                           
$showform = FALSE;

$besked = "Navn: " . $name . "\n\nTelefon: " . $telefon . "\n\nPris: " . $pris . "kr.";

mail ($email, $emne, $besked, $from);

}

}

if ($showform) {

?>

<form method="post" action="<? echo $_SERVER['PHP_SELF'];?>">

<input type="hidden" name="checked" value="1">

<p>Navn:* <? echo $name_error; ?></p>
<input type="text" name="name" value="<? echo $_POST['name']; ?>"><br>

<p>Telefon nr.:* <? echo $telefon_error; ?></p>
<input type="text" name="telefon" value="<? echo $_POST['telefon']; ?>"><br>

<p>E-mail:*<? echo $email_error; ?></p>
<input type="text" name="email" value="<? echo $_POST['email']; ?>"><br>

<p>Antal af Vare X:</p>
<select size="1" name="vareXantal">

<option <? if ($_POST['vareXantal'] == "0") {echo "SELECTED";}?>>0</option>
<option <? if ($_POST['vareXantal'] == "1") {echo "SELECTED";}?>>1</option>
<option <? if ($_POST['vareXantal'] == "2") {echo "SELECTED";}?>>2</option>
<option <? if ($_POST['vareXantal'] == "3") {echo "SELECTED";}?>>3</option>
<option <? if ($_POST['vareXantal'] == "4") {echo "SELECTED";}?>>4</option>
<option <? if ($_POST['vareXantal'] == "5") {echo "SELECTED";}?>>5</option>
<option <? if ($_POST['vareXantal'] == "6") {echo "SELECTED";}?>>6</option>
<option <? if ($_POST['vareXantal'] == "7") {echo "SELECTED";}?>>7</option>
<option <? if ($_POST['vareXantal'] == "8") {echo "SELECTED";}?>>8</option>

</select><br>

<p>Antal af Vare Y:</p>
<select size="1" name="vareYantal">

<option <? if ($_POST['vareYantal'] == "0") {echo "SELECTED";}?>>0</option>
<option <? if ($_POST['vareYantal'] == "1") {echo "SELECTED";}?>>1</option>
<option <? if ($_POST['vareYantal'] == "2") {echo "SELECTED";}?>>2</option>
<option <? if ($_POST['vareYantal'] == "3") {echo "SELECTED";}?>>3</option>
<option <? if ($_POST['vareYantal'] == "4") {echo "SELECTED";}?>>4</option>
<option <? if ($_POST['vareYantal'] == "5") {echo "SELECTED";}?>>5</option>
<option <? if ($_POST['vareYantal'] == "6") {echo "SELECTED";}?>>6</option>
<option <? if ($_POST['vareYantal'] == "7") {echo "SELECTED";}?>>7</option>
<option <? if ($_POST['vareYantal'] == "8") {echo "SELECTED";}?>>8</option>

</select><br>

<p>Tilvalg til Vare X </p><input type="checkbox" name="tilvalgX"><br>
<p>Tilvalg til Vare y </p><input type="checkbox" name="tilvalgY"><br>

<input class="button" type="submit" value="Send mail">                       

</form>

<?

}

?>

</body>

</html>
Avatar billede kimleijensen Nybegynder
17. november 2010 - 23:59 #2
Det ser rigtig godt ud, men har behov for at vide hvilket antal af varene de vælger og hvilke tilvalg.
Avatar billede webweaver Praktikant
18. november 2010 - 00:08 #3
Det tilføjer jeg lige. Giv mig et par min ... :-)
Avatar billede webweaver Praktikant
18. november 2010 - 00:18 #4
Så skulle det være ordnet. Sæt dette ind i scriptet, hvor det passer ind, istedet for den gamle del af det. (ikke hele scriptet som skal udskiftes)

echo "Der er blevet sendt en mail afsted til dig.<br>";
                                                                   
$showform = FALSE;

if ($tilvalgX) {

$tilvalgX = "Ja";

} else {

$tilvalgX = "Nej";

}

if ($tilvalgY) {

$tilvalgY = "Ja";

} else {

$tilvalgY = "Nej";

}

$besked = "Navn: " . $name . "\n\nTelefon: " . $telefon . "\n\nPris: " . $pris . "kr.\n\nVare X: " . $vareXantal . " stk.\n\nVare Y: " . $vareYantal . " stk.\n\nTilvalg X: " . $tilvalgX . "\n\nTilvalg Y: " . $tilvalgY;

mail ($email, $emne, $besked, $from);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester