Bij mijn vorige topic:
http://www.phphulp.nl/forum/showtopic.php?cat=1&id=34256
Ben ik een enorm stuk verder gekomen alleen nu zit ik bij het volgende gedeelte klem.

Wat nu de bedoeling is dat de klant telkens maar 1 ding kan bestellen, de klant selecteerd dus de eerste en dan mag deze ook alleen maar komen
http://hoe.visiondesign.nu/bestel1.php

Alleen hoe moet ik verder?
Wie kan mij opweg helpen hoe ik aangeef in PHP dat als ik die selectie maak dat hij ook alleen maar die rij meeneemt?
Wat ik even niet volg is dit:

<?php
if(isset($_POST['aantal'.$_POST['check']]))
?>

Hier staat aantal.

Alleen hier staat weer:
<?php
echo '<td width="150"><input type="text" name="aantal1" value="" /></td>';

echo '<td><input type="text" name="aantal2" value="" /></td>';

?>

aantal1 en aantal2, moet dit niet aangepast worden omdat aantal zelf nergens vermeld wordt, of zit ik er naast of?
Nee het klopt zo. $_POST['check'] bevat het nummer van welk product er besteld wordt. En tevens komen de namen in het formulier overeen: product1 <-> aantal1, product2 <-> aantal2.

Dus door de waarde van $_POST['check'] achter 'aantal' te plakken, wordt uiteindelijk de goede waarde uitgelezen. Stel dus dat het tweede product geselecteerd zou worden, $_POST['check'] is dan '2'. En vervolgen is $_POST['aantal'.$_POST['check']] dus gelijk aan $_POST['aantal2'] en dat is de waarde die je wilt hebben.

Dit probleem is op vele manieren op te lossen. Je zou bijvoorbeeld ook voor de naam van de 'aantal' velden een array kunnen gebruiken en vervolgens daar de juiste key in gaan matchen.
Ow zo ok.

Alleen die 2 melding:
<?php
echo '<p>Je hebt helaas geen product geselecteerd</p>';
?>

Laat hij niet zien ook niet als je geen waarde heb ingevuld dan krijg je gewoon de melding:
Je hebt het volgende product geselecteerd: product #1

Het aantal dat je daarbij ingevuld hebt is:.

En als je niks doet krijg je dit:
Je hebt helaas geen product geselecteerd

Hij controleert wel de selectie maar niet of er een waarde is ingevuld, is er iets mis in de code nu of?
Oh, dan moet je bij de controle van het getal isset() even vervangen door empty().
Owja idd logisch ook weer :)
NU moet ik van aantal en van check een sessie maken toch??

<?php
$_SESSION['aantal'] = $_POST['aantal'];
$_SESSION['check'] = $_POST['check'];
?>

Zodat ik deze later weer kan uitlezen toch ??
Jep, als je die variabelen wilt bewaren wel ja.
Ok heb ik nu gedaan:

SESSIES

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['check']))
{
$_SESSION['check'] = $_POST['check'];
?>

------

<?php
if(!empty($_POST['aantal'.$_POST['check']]))
{
$_SESSION['aantal'];
?>

En nu het uitlezen:

Eerste weer een $var maken:

<?php
$check = $_SESSION['check'];
$aantal = $_SESSION['aantal'];
?>

En het uitlezen ervan:
<?php
echo '<p><strong>AANTAL:</strong> ' .$aantal. '</p>';
echo '<p><strong>check:</strong> ' .$check. '</p>';
?>

En ik krijg een mooie error
Notice: Undefined index: aantal in ... line 8
En daar staat:
$aantal = $_SESSION['aantal'];

Heb al wat combinaties geprobeerd maar ik blijf deze error krijgen wat gaat er mis?
Zelf denk ik bij het opslaan van de SESSIE maar ik weet het niet zeker.
Ja, je hebt daar ook alleen $_SESSION['aanta'] staan, en verder niets. Maak daar eens van:
<?php
$_SESSION['aantal'] = $_POST['aantal'];
?>

Daarnaast is het hernoemen van de sessievariabelen zoals je op het einde doet echt overbodig. Je kunt gewoon $_SESSION['check'] en $_SESSION['aantal'] gebruiken als variabele.
OK heb ik nu aangepast maar er is nu een error op die lijn.

<?php
Notice: Undefined index: aantal in
?>


En van dat laatste wist ik niet, pas ik straks meteen aan :)
Thx voor de tip.
Eh ja, natuurlijk. Waardoor komt dat nu? Er bestaat geen inputveld met de naam 'aantal' alleen maar met 'aantal1' en 'aantal2'. Dat zul je dus nog even moeten aanpassen net zoals de manier die je gebruikt bij het juist weergeven ervan zoals in een paar posts geleden besproken.

Reageren