Hier een vraag van mij aan jullie.
Ik ben met een script bezig klein bestellijstje en die vordert al aardig ik loop alleen tegen een klein probleem aan.
Als je bijvoorbeeld: Je gegevens invult en je bent je naam of e-mail vergeten dan word hij terug gestuurd met de melding dat je iets vergeten bent hierbij onthoud hij je overig ingevoerde gegevens waaronder adres enzo.
Dit werkt prima overigens alleen lukt mij dit niet met de bestelformulier die ik uitlees doormiddel van een array. Als je nu dus je gegevens invult en de hoeveelheid die je wilt bestellen maar je vergeet bijv: je naam dan onthoud hij alles behalve de aantallen voor de bestelling.
Hieronder de script die ik gebruik:
<?php
require 'connect.php';
session_start();
ob_start();
$_SESSION['show'] = "";
if(isset($_POST['Controleer'])){
// Producten in een Array zetten
$sProduct = "SELECT * FROM Bestellijst";
$product = mysql_query($sProduct, $sqlLink);
$aGebak = array();
while ($r1 = mysql_fetch_array($product)){
$aGebak[] = $r1[ 'Product' ];
}
// Prijzen in een array zetten
$sPrijs = "SELECT Prijs FROM Bestellijst";
$prijs = mysql_query($sPrijs, $sqlLink);
$aPrijs = array();
while ($r2 = mysql_fetch_array($prijs)){
$aPrijs[] = $r2[ 'Prijs' ];
}
$aTotaal = array();
$aantal = count($_POST['aantal']) ? $_POST['aantal'] : array();
// Alle input velden met "Aantal" Toewijzen ($a is inhoud van het veld) ($key is opvolgende nummer van 1 >)
foreach($_POST['aantal'] as $key => $a ) {
if(!empty($a)) {
$b = $a * $aPrijs[$key];
//stop alle prijzen $b in een array $aTotaal
array_push($aTotaal, $b);
$_SESSION['show'] .= "<tr><td>".$a."</td><td>".$aGebak[$key]."</td><td>".number_format($b, 2, ',', '.')."</td></tr>";
$$key = trim($a);
}
}
if(!isset($_SESSION['show']) || $_SESSION['show'] == "" ){
$userErrors[] = 'U heeft geen <u>Producten</u> in bestelling.';
$error->Producten = 'Geen bestelling.';
}
// Optellen alle bedragen in $aTotaal - Array
function ArrayCount($array)
{
$getal = 0;
foreach($array as $key => $waarde)
{
$getal = $getal + $waarde;
}
return $getal;
}
$_SESSION['Totaal'] = number_format(ArrayCount($aTotaal), 2, ',', '.');
// Persoonlijke gegevens
$email = $_POST['email'];
//E-mail Check
function checkmail($email)
{
$email_host = explode("@", $email);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
$valid = 1;
return $valid;
}
if( !isset($_POST['naam']) || $_POST['naam'] == '' )
{
$userErrors[] = 'U bent uw <u>Naam</u> vergeten.';
$error->InputN = ' style="border-color:#F00"';
}
if( !isset($_POST['adres']) || $_POST['adres'] == '' )
{
$userErrors[] = 'U heeft geen <u>Adres</u> ingevuld';
$error->InputA = ' style="border-color:#F00"';
}
if( !isset($_POST['telefoon']) || $_POST['telefoon'] == '' )
{
$userErrors[] = 'U heeft geen <u>Telefoonnummer</u> ingevuld';
$error->InputT = ' style="border-color:#F00"';
}
if( !isset($_POST['email']) || $_POST['email'] == '' )
{
$userErrors[] = 'U heeft geen <u>E-mailadres</u> ingevuld';
$error->InputM = ' style="border-color:#F00"';
}
elseif(checkmail($_POST['email']) == 0)
{
$userErrors[] = "Uw <u>E-mail</u> is niet correct ingevult.";
$error->InputM = ' style="border-color:#F00"';
unset($_POST['email']);
}
if (empty($error))
{
header("Location: bestelcontrole.php");
ob_end_flush();
}
}
?>
Dit is het script die hem verwerkt en controleert hieronder volgt het formulier:
<form name="bestellijst" method="post" action="<? htmlentities($_SERVER['PHP_SELF']); ?>">
<?php
// Bestellijst Linker Kolom
$sQuery = "SELECT * FROM Bestellijst WHERE ID < 26 ORDER BY ID ASC";
$result = mysql_query($sQuery, $sqlLink);
if( $sQuery === false )
{
// De query is niet gelukt
SQLerror(mysql_error(), 'Uw opdracht kan niet worden uitgevoerd', __FILE__);
}
else
{
if( mysql_num_rows($result) > 0 )
{
echo '<table width="400" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td width="75"><b>Aantal</b></td>
<td width="268"><b>Gebak</b></td>
<td width="55"><b>€</b></td>
</tr>';
while( $row = mysql_fetch_assoc($result) )
{
if($row['Actief'] == "2"){
echo '<tr>
<td>
<input name="aantal[]" type="hidden" id="aantal[]" size="5"/></td>
<td> </td>
<td> </td>
</tr>';
}else{
echo '<tr>
<td>
<input name="aantal[]" type="text" id="aantal[]" size="5"/></td>
<td>'.$row['Product'].'</td>
<td>'.$row['Prijs'].'</td>
</tr>';
}
}
echo '</table>';
}
else
{
echo 'Geen producten toegevoegd!';
}
}
?>
<?php
//Bestellijst Rechter Kolom
$sQuery = "SELECT * FROM Bestellijst WHERE ID > 25 ORDER BY ID ASC";
$result = mysql_query($sQuery, $sqlLink);
if( $sQuery === false )
{
// De query is niet gelukt
SQLerror(mysql_error(), 'Uw opdracht kan niet worden uitgevoerd', __FILE__);
}
else
{
if( mysql_num_rows($result) > 0 )
{
echo '<table width="400" border="0" cellspacing="0" cellpadding="0" align="right">
<tr>
<td width="75"><b>Aantal</b></td>
<td width="268"><b>Gebak</b></td>
<td width="55"><b>€</b></td>
</tr>';
while( $row = mysql_fetch_assoc($result) )
{
if($row['Actief'] == "2"){
echo '<tr>
<td>
<input name="aantal[]" type="hidden" id="aantal[]" size="5" /></td>
<td> </td>
<td> </td>
</tr>';
}else{
echo '<tr>
<td>
<input name="aantal[]" type="text" id="aantal[]" size="5"></td>
<td>'.$row['Product'].'</td>
<td>'.$row['Prijs'].'</td>
</tr>';
}
}
echo '</table>';
}
else
{
echo 'Geen producten toegevoegd!';
}
}
?>
<br clear="both" />
<b><br />
<br />
Bestelling voor: </b>
<?php if( count($userErrors) > 0 ) :
// Er zijn errors gevonden ?>
<div class="vergeten">
<ul>
<?php foreach( $userErrors as $err ) : ?>
<li><?php echo $err; ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<table width="781" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="165">Naam Bedrijf:</td>
<td width="184"><label for="bedrijf"></label>
<input name="bedrijf" type="text" id="bedrijf" value="<?php echo $_POST['bedrijf']; ?>"/></td>
<td colspan="2">Onze winkel is open van Ma t/m Za vanaf 8:00</td>
</tr>
<tr>
<td>Naam:</td>
<td><input name="naam" type="text" id="naam" value="<?php echo $_POST['naam']; ?>"<?php echo $error->InputN; ?>/>
<span class="vergeten">*</span></td>
<td width="197">Bezorgen of afhalen:</td>
<td width="235"><input type="radio" name="bezorg" id="radio" value="Bezorgen" />
<label for="bezorg"></label>
Bezorgen
<input name="bezorg" type="radio" id="radio2" value="Afhalen" checked="checked" />
Afhalen</td>
</tr>
<tr>
<td>Adres:</td>
<td><input name="adres" type="text" id="adres" value="<?php echo $_POST['adres']; ?>"<?php echo $error->InputA; ?>/>
<span class="vergeten">*</span></td>
<td> </td>
<td><label for="bezorgkosten"></label>
<select name="bezorgkosten" id="bezorgkosten">
<option value="3.50">Alkmaar €3,50</option>
<option value="7.00">Heerhugowaard €7,00</option>
<option value="7.00">Heiloo €7,00</option>
<option value="7.00">Bergen €7,00</option>
<option value="7.00">Sint Pancras €7,00</option>
<option value="7.00">Koedijk €7,00</option>
<option value="7.00">Noord-Scharwoude €7,00</option>
<option>Overige €0,60 p/km</option>
<option selected="selected">Bezorgkosten Gebied:</option>
</select></td>
</tr>
<tr>
<td>E-mail: </td>
<td><input name="email" type="text" id="email" value="<?php echo $_POST['email']; ?>"<?php echo $error->InputM; ?>/>
<span class="vergeten">*</span></td>
<td>Datum:</td>
<td><input name="datum" type="text" id="datum" value="<?php echo date("d-m-Y"); ?>"/></td>
</tr>
<tr>
<td>Telefoon:</td>
<td><input name="telefoon" type="text" id="telefoon" value="<?php echo $_POST['telefoon']; ?>"<?php echo $error->InputT; ?> maxlength="10" />
<span class="vergeten"><span class="MenuBarSubmenuVisible">*</span></span></td>
<td>Gewenste tijd:</td>
<td><input type="radio" name="tijdstip" id="radio3" value="1" />
09:30 - 10:00 uur</td>
</tr>
<tr>
<td>Toestelnummer:</td>
<td><input name="toestel" type="text" id="toestel" value="<?php echo $_POST['toestel']; ?>" /></td>
<td> </td>
<td><input type="radio" name="tijdstip" id="radio4" value="2" />
10:00 - 10:30 uur</td>
</tr>
<tr>
<td class="vergeten">* Verplichte velden</td>
<td> </td>
<td> </td>
<td><input type="radio" name="tijdstip" id="radio5" value="3" />
10:30 - 11:00 uur</td>
</tr>
</table>
<br />
<br />
<input type="submit" name="Controleer" id="Controleer" value="Controleer" />
</form>Let op: sommige velden zijn nog niet in het script verwerkt ik liep eerst tegen dit puntje aan.
en in deze script is dus geen <?php echo $_POST['aantal']; ?> verwerkt omdat die geen juiste oplossing levert. Ik wil dus dat hij als iemand bijv: naam niet invoert dat hij onthoud welke aantallen waar besteld is.
Hieronder een link naar de site om te zien wat de bedoeling is:
Klik hier!
Hoop dat jullie mij kunnen helpen?
Met vriendelijke groet,
Mark
[size=xsmall]Toevoeging op 16/08/2013 20:14:21:[/size]
Probleem is verholpen heb hier en daar een session toegevoegd om hem te laten werken!
Deze topic mag verwijderd worden!