Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum.
Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden.
Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
bestelformulier maken met php
ben bezig met een bestelformulier en daarin heb ik per product een output die ge-echood wordt.
Kan dit niet korter?
Wat betrteft het bestelformulier: ik probeer het zo te maken dat de er maar op 1 plaats een wijziging hoeft plaats te vinden (gemakzucht voor de gebruiker) en dat de waardes in de form worden overgenomen. Ik heb die form als volgt gemaakt maar weet niet of dit de goede methode is om het zo efficient mogelijk te doen:
prijzen.php
output.php:
// waarde product 1, spatie + value van de input + value input product 1 * prijs product 1, op 2 decimalen afronden
if(!empty($_POST[$product1])) {
$product1_output = $product1.' '.$_POST[$product1].' stuks Prijs € '.number_format($_POST[$product1]*$prijs[$product1], 2);
echo $product1_output;
}
if(!empty($_POST[$product2])) {
$product2_output = $product2.' '.$_POST[$product2].' stuks Prijs € '.number_format($_POST[$product2]*$prijs[$product2], 2);
echo $product2_output;
}
if(!empty($_POST[$product3])) {
$product3_output = $product3.' '.$_POST[$product3].' stuks Prijs € '.number_format($_POST[$product3]*$prijs[$product3], 2);
echo $product3_output;
}
// ect. t/m 25
De variable $output_totaal moet een verzameling zijn van deze alle 25 product outputs.
$output_totaal = $product1_output;
$output_totaal .= $product2_output;
$output_totaal .= $product3_output;
// t'm 25
Kan dit niet korter?
Wat betrteft het bestelformulier: ik probeer het zo te maken dat de er maar op 1 plaats een wijziging hoeft plaats te vinden (gemakzucht voor de gebruiker) en dat de waardes in de form worden overgenomen. Ik heb die form als volgt gemaakt maar weet niet of dit de goede methode is om het zo efficient mogelijk te doen:
<?php
include ('prijzen.php');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
include ('output.php');
}
?>
<!doctype html>
<html lang="en">
<head>
<title><!-- Insert your title here --></title>
</head>
<body>
<form id="bestelformulier" method="post" action="">
<table width="260px">
<tr>
<td><b>Broodjes</b></td>
<td><b>Prijs</b></td>
<td><b>Aantal</b></td>
</tr>
<tr><td></td></tr> <!-- whitespace -->
<tr>
<td><?php echo $product1 ?></td>
<td>€ <?php echo number_format($prijs[$product1], 2); ?></td>
<td><input type="text" name="<?php echo $product1 ?>" size="3" /></td>
</tr>
<tr>
<td><?php echo $product2 ?></td>
<td>€ <?php echo number_format($prijs[$product2], 2); ?></td>
<td><input type="text" name="<?php echo $product2 ?>" size="3" /></td>
</tr>
<tr>
<td><?php echo $product3 ?></td>
<td>€ <?php echo number_format($prijs[$product3], 2); ?></td>
<td><input type="text" name="<?php echo $product3 ?>" size="3" /></td>
</tr>
<tr>
<td><?php echo $product4 ?></td>
<td>€ <?php echo number_format($prijs[$product4], 2); ?></td>
<td><input type="text" name="<?php echo $product4 ?>" size="3" /></td>
</tr>
<tr>
<td><?php echo $product5 ?></td>
<td>€ <?php echo number_format($prijs[$product5], 2); ?></td>
<td><input type="text" name="<?php echo $product5 ?>" size="3" /></td>
</tr>
<tr><td></td></tr> <!-- whitespace -->
<tr><td></td></tr> <!-- whitespace -->
prijzen.php
<?php
// producten
$product1 = 'Broodje-Ham';
$product2 = 'Broodje-Kaas';
$product3 = 'Brodje-Gezond';
$product4 = 'Broodje-Tonijn';
$product5 = 'Broodje-Zalm';
// dranken
$product6 = 'Cola';
$product7 = 'Fanta';
$product8 = 'Bitter-lemon';
$product9 = 'Spa-rood';
$product10 = 'Spa-blauw';
//prijzen van producten
$prijs = array(
$product1 => 3.5, // prijs 3.50
$product2 => 3.5,
$product3 => 3.5,
$product4 => 4.5,
$product5 => 4.5,
$product6 => 2.0,
$product7 => 2.0,
$product8 => 2.5,
$product9 => 1.5,
$product10 => 1.5,
);
?>
output.php:
<?php
// waarde product 1, spatie + value van de input + value input product 1 * prijs product 1, op 2 decimalen afronden
if(!empty($_POST[$product1])) {
$product1_output = $product1.' '.$_POST[$product1].' stuks Prijs € '.number_format($_POST[$product1]*$prijs[$product1], 2);
echo $product1_output;
}
if(!empty($_POST[$product2])) {
$product2_output = $product2.' '.$_POST[$product2].' stuks Prijs € '.number_format($_POST[$product2]*$prijs[$product2], 2);
echo $product2_output;
}
if(!empty($_POST[$product3])) {
$product3_output = $product3.' '.$_POST[$product3].' stuks Prijs € '.number_format($_POST[$product3]*$prijs[$product3], 2);
echo $product3_output;
}
// .........
$output_totaal = $product1_output;
$output_totaal .= $product2_output;
$output_totaal .= $product3_output;
// t'm 25
?>
Getagd:
Login of Registreer om te reageren.
Reacties
array.php
@vinTage Jouw voorbeeld moet ik eens ff rustig gaan bestuderen, dat is zeer efficient opgezet zo te zien
Waar ik nu tegenaanloop is het volgende: Stel je wilt om de zoveel rows een koptekst met bv Broodjes Dan weer 7 of 8 producten en dan weer een koptekst: Dan zul je helaas afstand moeten doen van die foreach toch die de table rows produceert?
[2e keus optie, lees verder]
Je kunt per 'categorie' een array aanmaken en dus per categorie dus ook de for-loops aanroepen, dan is de code nog altijd maar een fractie van de opzet code. Mijn code bevat geen multidimensionale array, enkel een associatieve array.
Om nu dus categorie??n te gaan toevoegen kun je wel multidimensionaal gaan, waarbij je de array naam als 'koptextje' zou kunnen gaan gebruiken.
Ik zal er binnenkort nog eens mee gaan knoeien.
Misschien dat nu mijn uitleg voor dat gastenboek (admin gedeelte) ook iets duidelijker is?
Ik wil eerst ff dit bestelformulier goed werkend krijgen met kopteksten hier en daar erin en daarna pak ik het gastenboek weer op.
In de form:
En bij de verwerking:
Dit werkt goed.
En met een verschrikkelijk simpel cmsje beheerd de klant de database, ipv ftp/texteditor/ftp
Graag feedback zo waar nodig