Voor school moeten wij een php opdracht doen, waarbij de klant uit verschillende producten kan kiezen, waarna hij met 1 klik de prijzen bij elkaar opgeteld kan zien. Hoe moet dat? We hebben dit PHP deel al maar het werkt niet

<?
$product = $_POST ['product'];


$kleur = $_POST ['kleur'];

$appeltaart = $_POST ['appeltaart'];

$conditie = $_POST ['conditie'];

$extra1 = $_POST ['extra1'];
$extra2 = $_POST ['extra2'];
$extra3 = $_POST ['extra3'];
$extra4 = $_POST ['extra4'];
$extra5 = $_POST ['extra5'];
$extra6 = $_POST ['extra6'];
$extra7 = $_POST ['extra7'];
$extra8 = $_POST ['extra8'];


?>
<?php
$prijs = 0;
if ($_POST['product'] == "mes"){$prijs = $prijs + 3;}
if ($_POST['product'] == "vork"){$prijs = $prijs + 4;}
if ($_POST['product'] == "lepel"){$prijs = $prijs + 5;}
if ($_POST['product'] == "theelepel"){$prijs = $prijs + 2;}
if ($_POST['product'] == "beker"){$prijs = $prijs + 6;}

if ($_POST['kleur'] == "zilver"){$prijs = $prijs + 2;}
if ($_POST['kleur'] == "blauw"){$prijs = $prijs + 1;}
if ($_POST['kleur'] == "paars"){$prij = $prijss + 2;}
if ($_POST['kleur'] == "wit"){$prijs = $prijs + 1;}

if ($_POST['appeltaart'] == "wel"){$prijs = $prijs + 12;}

if ($_POST['conditie'] == "gewassen"){$prijs = $prijs + 4;}
if ($_POST['conditie'] == "gezandstraald"){$prijs = $prijs + 8;}
if ($_POST['conditie'] == "geschuurd"){$prijs = $prijs + 3;}
if ($_POST['conditie'] == "gedroogd"){$prijs = $prijs + 1;}

if ($_POST['extra1'] == "Messenslijper"){$prijs = $prijs + 1;}
if ($_POST['extra2'] == "Vorkpuntiger"){$prijs = $prijs + 2;}
if ($_POST['extra3'] == "Lepelronder"){$prijs = $prijs + 4;}
if ($_POST['extra4'] == "Bekerreiniger"){$prijs = $prijs + 6;}
if ($_POST['extra5'] == "Bekerhouder"){$prijs = $prijs + 9;}
if ($_POST['extra6'] == "Bestekbak"){$prijs = $prijs + 5;}
if ($_POST['extra7'] == "Thee"){$prijs = $prijs + 8;}
if ($_POST['extra8'] == "Pizzasnijder"){$prijs = $prijs + 3;}


?>


<?php
if (isset($_POST['submit'])) {
echo "Je hebt een $product in de kleur $kleur gekozen, samen met een $extra1 $extra2 $extra3 $extra4 $extra5 $extra6 $extra7 $extra8. Je wilt hier $appeltaart een appeltaart bij. Dit kost $prijs euro <P>";
}

?>


Het is de bedoeling dat er nu elke keer als er iets word gekozen, die prijs bij 0 word opgeteld, maar als ik dit uittest krijg ik als eindbedrag steeds maar het eerste product ipv ze allemaal bij elkaar. heeft iemand hier een handige manier voor?
Hoe gaat je request? Lijkt alsof de code oké is.
Hoe ziet je formulier eruit?

<?php

$prijs += 3;

?>

is hetzelfde als:

<?php

$prijs = $prijs + 3;

?>
- Mark - op 09/10/2013 11:19:16

Hoe ziet je formulier eruit?

<?php

$prijs += 3;

?>

is hetzelfde als:

<?php

$prijs = $prijs + 3;

?>



Dat had ik inderdaad eerst maar een klasgenoot verbeterde dat. Weet ik dat ook weer.

<body>
Kies hier uw product
<form method="post">
<INPUT TYPE="radio" NAME="product" VALUE="mes" Checked />5 messen
<INPUT TYPE="radio" NAME="product" VALUE="vork">5 vorken
<INPUT TYPE="radio" NAME="product" VALUE="lepel">5 lepels
<INPUT TYPE="radio" NAME="product" VALUE="theelepel">10 theelepels
<INPUT TYPE="radio" NAME="product" VALUE="beker">2 bekers
<p>
In welke kleur wil je je product?
<br />
<INPUT TYPE="radio" NAME="kleur" VALUE="Zilver">Zilver
<INPUT TYPE="radio" NAME="kleur" VALUE="Blauw">Blauw
<INPUT TYPE="radio" NAME="kleur" VALUE="Paars">Paars
<INPUT TYPE="radio" NAME="kleur" VALUE="Wit">Wit
<p>
Appeltaart erbij?
<br />
<INPUT TYPE="radio" NAME="appeltaart" VALUE="Wel" />Wel
<INPUT TYPE="radio" NAME="appeltaart" VALUE="Niet" />Niet
<p>
Wil je je product gewassen, gezandstraald, geschuurd of gedroogd? <br />
<INPUT TYPE="radio" NAME="conditie" VALUE="gewassen">Gewassen
<INPUT TYPE="radio" NAME="conditie" VALUE="gezandstraald">Gezandstraald
<INPUT TYPE="radio" NAME="conditie" VALUE="geschuurd">Geschuurd
<INPUT TYPE="radio" NAME="conditie" VALUE="gedroogd">Gedroogd
<p>
Hier kunt u nog eventuele extra's kiezen: <br />
<INPUT TYPE="checkbox" NAME="extra1" VALUE="Messenslijper"Checked/>Messenslijper <br />
<INPUT TYPE="checkbox" NAME="extra2" VALUE="Vorkpuntiger" />Vorkpuntiger <br />
<INPUT TYPE="checkbox" NAME="extra3" VALUE="Lepelronder" />Lepelronder <br />
<INPUT TYPE="checkbox" NAME="extra4" VALUE="Bekerreiniger"Checked/>Bekerreiniger <br />
<INPUT TYPE="checkbox" NAME="extra5" VALUE="Bekerhouder" />Bekerhouder <br />
<INPUT TYPE="checkbox" NAME="extra6" VALUE="Bestekbak" />Bestekbak <br />
<INPUT TYPE="checkbox" NAME="extra7" VALUE="Thee"Checked/>Thee <br />
<INPUT TYPE="checkbox" NAME="extra8" VALUE="Pizzasnijder"Checked/>Pizzasnijder
<p>
<INPUT TYPE="submit" NAME="submit" VALUE="Bestel" />

</form>


[size=xsmall]Toevoeging op 09/10/2013 11:30:50:[/size]

Chi Lion op 09/10/2013 11:16:20

Hoe gaat je request? Lijkt alsof de code oké is.


Wat bedoel je met een request?
Doe eens een print_r($_POST);

Even voor de duidelijkheid.

Stel we nemen als eerste een mes, en de tweede keer een vork. Is het de bedoeling dat de totaal prijs van het mes en de vork dan worden opgeteld?
Chi Lion op 09/10/2013 11:31:51

Doe eens een print_r($_POST);




Waar? het klinkt misschien nogal dom maar ik ben niet zo'n pro in PHP als jullie, daarom dat ik hier met mijn probleem kom

[size=xsmall]Toevoeging op 09/10/2013 11:42:38:[/size]

- Mark - op 09/10/2013 11:39:01

Even voor de duidelijkheid.

Stel we nemen als eerste een mes, en de tweede keer een vork. Is het de bedoeling dat de totaal prijs van het mes en de vork dan worden opgeteld?


Ne, het formulier staat elke keer los van elkaar. Dus stel ik kies mes, kleur blauw, een appeltaart, gedroogd, met 3 extra's erbij. Dan wil ik die prijzen bij elkaar opgeteld
In een bestand waar je je $_POST gebruikt (2de of 3de lijnen code dus)
Chi Lion op 09/10/2013 11:44:52

In een bestand waar je je $_POST gebruikt (2de of 3de lijnen code dus)


Dus alles waar $_POST staat vervangen door print_r($_POST); ?
Nee, Chi Lion wil zien wat er door het formulier verstuurd word. $_POST is een array, en met print_r() tover je die op het scherm zeg maar.

Kijk eens naar de value van je kleuren. In je formulier gebruik je Hoofdletters maar tijdens de controle niet.
- Mark - op 09/10/2013 12:03:30

Nee, Chi Lion wil zien wat er door het formulier verstuurd word. $_POST is een array, en met print_r() tover je die op het scherm zeg maar.

Kijk eens naar de value van je kleuren. In je formulier gebruik je Hoofdletters maar tijdens de controle niet.


Dankje! Hij werkt nu. Zat m inderdaad in de hoofdletters. Nou moet ik ook nog van deze prijs de btw eraf halen..

Reageren