HostFact Help
HostFact Help > Bestelformulier
Hoe kan ik een aantal laten opgeven bij het algemene bestelformulier?
Let op: PHP kennis vereist!
Indien u voor een algemeen bestelformulier de mogelijkheid wilt geven om de klant een aantal op te laten geven, dient u zelf aanpassingen te maken in het bestelformulier. Hieronder leggen we uit hoe dat kan, al zult u zelf uw eigen variant hierop kunnen maken.
1. Pas de HTML weergave aan
Open het bestand bestellen/views/details/phtml en voeg de mogelijkheid voor een aantal toe op onderstaande wijze. Uiteraard kan een invulveld, maar ook een selectieveld gebruikt worden.
2. Pas de controller aan
Nu het voor de klant mogelijk is een aantal op te geven, dient dit in de controller nog gevalideerd en verwerkt te worden. Op hiervoor het bestand bestellen/controllers/orderform_controller.php. Daar staat in de functie detail() de volgende code:
Dit dient vervangen te worden naar bijvoorbeeld:
3. Enkel voor bepaalde formulieren tonen
Doordat ieder bestelformulier een uniek ID heeft kan aan de hand van het ID voor een of meerdere bestelformulier de code worden aangepast. Op basis van de constante ORDERFORM_ID kan dan een IF-statement om de aangepaste code geplaatst worden.
Let op: PHP kennis vereist!
Indien u voor een algemeen bestelformulier de mogelijkheid wilt geven om de klant een aantal op te laten geven, dient u zelf aanpassingen te maken in het bestelformulier. Hieronder leggen we uit hoe dat kan, al zult u zelf uw eigen variant hierop kunnen maken.
1. Pas de HTML weergave aan
Open het bestand bestellen/views/details/phtml en voeg de mogelijkheid voor een aantal toe op onderstaande wijze. Uiteraard kan een invulveld, maar ook een selectieveld gebruikt worden.
<label class="w1">Aantal:</label> <input type="text" name="Product_Number" value="<?php if(isset($element_list['Product']['Number']) && $element_list['Product']['Number']){ echo htmlspecialchars($element_list['Product']['Number']); } ?>"/>
2. Pas de controller aan
Nu het voor de klant mogelijk is een aantal op te geven, dient dit in de controller nog gevalideerd en verwerkt te worden. Op hiervoor het bestand bestellen/controllers/orderform_controller.php. Daar staat in de functie detail() de volgende code:
// Store product in session $this->element->newItem('Product'); $this->element->setAttribute('ProductCode', $_POST['Product']); $this->element->saveItem();
Dit dient vervangen te worden naar bijvoorbeeld:
// Store product in session $this->element->newItem('Product'); $this->element->setAttribute('ProductCode', $_POST['Product']); if(isset($_POST['Product_Number']) && $_POST['Product_Number'] == (int)$_POST['Product_Number'] && $_POST['Product_Number'] >= 1 && $_POST['Product_Number'] <= 10)
{ $this->element->setAttribute('Number', $_POST['Product_Number']); } elseif(isset($_POST['Product_Number'])) { $this->Error[] = 'Er dient een geldig aantal opgegeven te worden.'; } $this->element->saveItem();
3. Enkel voor bepaalde formulieren tonen
Doordat ieder bestelformulier een uniek ID heeft kan aan de hand van het ID voor een of meerdere bestelformulier de code worden aangepast. Op basis van de constante ORDERFORM_ID kan dan een IF-statement om de aangepaste code geplaatst worden.