Ik ben bezig met een bestelformulier aan het maken voor een bestelformulier opdracht met PHP.
Het HTML formulier heb ik maar simpel in elkaar gezet, maar dan?...

Ik ben zover dat ik de uitgaande waardes in mijn "Orderbevestiging" heb staan.
Maar er zijn dingen die ik nog niet helemaal snap en de kluts kwijt raak.

Zo moet ik wanneer ik het desbetreffende product selecteer automatisch een prijs te zien krijgen.
Nu heb ik prijs nog in een aanpasbaar tekstvak staan, maar is door iedereen aan te passen.
Ook moet aan dat product een leeftijdscategorie hangen.
Deze wordt gecontroleerd met het ingegeven leeftijd door de eindgebruiker.
Wanneer de gebruiker niet oud genoeg is moet deze in de volgende pagina een melding hiervan krijgen dat deze niet besteld mag worden.

Zou iemand mij hier tips over kunnen geven of eventueel mee kunnen helpen?
De prijs kan je met een SELECT-query uit de database halen. Over de producten gesproken kan je een leeftijd erbij invullen, een simpele vergelijking zorg ervoor dat je kan bepalen of iemand het mag bestellen.
Oke ik moet deze opdracht script insturen dus ik kan geen gebruik laten maken van een database.
Is het dus mogelijk om aan de verschillende producten een array te hangen met hierin prijzen per product?
En dan ook een leeftijd?
Die if else vergelijking en error meldingen gaat me nog wel lukken.
Bas en Aar, Ik vindt het voorbeeld op w3schools een beetje belabberd.

Gebruik liever een normale numerieke buitenste array en voor de binnenste array een associatieve. Dat werkt veel lekkerder.

Voorbeeld:
<?php
array(
array(
'omschrijving' => 'kachelpook' ,
'prijs' => 15.95
),
array(
'omschrijving' => 'aanmaakblokjes' ,
'prijs' => 4.45
)
);
?>

output voorbeeld:

<?php
foreach($producten as $product)
{
echo 'Omschrijving: ' . $product['omschrijving'] . ', Prijs: ' . $product['prijs'] . '<br>';
}
?>

[size=xsmall]Toevoeging op 26/06/2015 23:56:43:[/size]

Een database server is trouwens prima van buitenaf te benaderen. Dus de code kan gewoon doorgegeven worden als je het goed doet. Of je kiest er voor om een SQL-dump bestand mee te geven.
Ik zat hier zelf ook aan te denken om dit met een multi array te maken, maar wanneer ik het toe pas werkt het niet meer.

Ook zou ik zeg maar in plaats van een tekstvak bij prijs gelijk bij het gekozen product de juiste prijs willen laten zien.
Niet meer zelf in te vullen...

Ik moet het hier in zien te plakken:

<!DOCTYPE HTML>
<html lang="nl">

<head>
	<meta charset="utf-8" />
	<title>Bestelformulier game</title>
</head>
<body>

<?php
array(
    array(
        'omschrijving' => 'Call of Duty' ,
		'prijs' => 24.95 
		
    ),
    array(
        'omschrijving' => 'De Sims Erop Uit' ,
		'prijs' => 14.95 
		
    ),
	array(
		'omschrijving' => 'Winnie de Poeh'
		'prijs' => 11.95 
		
	)
);
?>

<form action="page1.php" method="post">
	
	<input type="text" name="name" placeholder="Voor- en achtenaam" required>Uw Naam<br />
	
	<input type="text" name="leeftijd" placeholder="Vul hier uw leeftijd in" required>Uw Leeftijd<br />
	
	<select id="omschrijving" name="omschrijving">
		<option value="">(geen spel gekozen)</option>
		<option value="Call of Duty">Call of Duty</option>
		<option value="De Sims Erop Uit">De Sims erop uit</option>
		<option value="Winnie de Poeh">Winnie de Poeh</option>
	</select>Spel<br />
	
	<select id="qty" name="qty">
		<option value="">Aantal</option>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
	</select>Aantal<br />

	<input type="text" name="price">Prijs per stuk<br />

	<select id="category" name="category">
		<option value="">(geen categorie gekozen)</option>
		<option value="alle leeftijden">Alle leeftijden</option>
		<option value="+12 Jaar">+12 Jaar</option>
		<option value="+14 Jaar">+14 Jaar</option>
		<option value="+18 Jaar">+18 Jaar</option>
	</select>Leeftijds Categorie<br />
	
	<input type="reset" name="reset" value="Reset">
	
	<input type="submit" name="submit" value="Bestel">

</form>


</body>
</html>


Even een paar tips:

Ga nooit halverwege je HTML met PHP beginnen maar hou je PHP logica helemaal bovenin en ga pas onderin HTML uitspugen. Regel 10 t/m 28 moeten dus helemaal naar boven! Wel mag je tussen je HTML een beetje PHP gebruiken om je variabelen te echo-en.

In de eerste dropdown wil je dus alle omschrijvingen van de producten.

dat zou je zo kunnen doen:


<select id="omschrijving" name="omschrijving">
<option value="">(geen spel gekozen)</option>
<?php
foreach($producten as $product)
{
	echo '<option value="'.$product['id'] .'">'.$product['omschrijving'] .'</option>';
}
?>
</select>


Dan zie ik vervolgens maar één input met een prijs. Wil je dat de prijs daar in komt te staan als de gebruiker een product geselecteerd heeft? Dan heb je daar wel javascript voor nodig..

Zou je niet liever gewoon divs maken met daarin omschrijving, prijs én aantal?
Je overkoepelende array moet je wel even in een variabele ($producten) opslaan.
- Aar - op 27/06/2015 00:28:40

Je overkoepelende array moet je wel even in een variabele ($producten) opslaan.


Inderdaad..

<?php
$producten = array(
array(
'omschrijving' => 'Call of Duty',
'prijs' => 24.95

),
array(
'omschrijving' => 'De Sims Erop Uit',
'prijs' => 14.95

),
array(
'omschrijving' => 'Winnie de Poeh',
'prijs' => 11.95

)
);
?>
Pfff snap er helemaal niks meer van...

Hij blijft foutcode's geven op regel 5, 10 en 15

Parse error: syntax error, unexpected ''prijs'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in C:\xampp\htdocs\PHPboek\Bestel formulier nieuw.php on line 15
Op regel 23 mist nog een komma. Maar de foutmelding zegt dat je een haakje ) vergeten bent.

Gebruik je wel een PHP editor???

Reageren