NickKoole / educom-webshop-database-1697464368

0 stars 0 forks source link

Maak gebuik van een extra hidden veld 'action' om een extra actie te triggeren #16

Open JeroenHeemskerk opened 1 year ago

JeroenHeemskerk commented 1 year ago

In de code van de webshop staat functie die een klein formuliertje om een product toe te voegen aan de winkelwagen, deze functie staat hieronder https://github.com/NickKoole/educom-webshop-database-1697464368/blob/8bb75a73f155cf0febcd0c751ae57aa92a5f5f25/forms.php#L20-L28

Als je deze functie uitbreid met 1 extra hidden variabele genaamd 'action' en deze een value geeft 'addToCart' dan kan je in de index.php in iedere case in de processRequest die een actie moet afhandelen de functie 'handleActions' aanroeoen

function handleActions() {
    $action = getPostVar('action');
    switch ($action) {
        case "addToCart":
           $productId = getPostVar("productId");
           addProductToShoppingCart($productId);
           break;
        case "removeFromCart":
           /* ... */
        case "order":
           /* ... */
     }
}

Dit lost ook issue #15 op.

JeroenHeemskerk commented 1 year ago

Ikzelf zou de functie showIncrementButton nog iets generieker maken, zodat je naast de action ook de button tekst kan meegeven. de productId wordt dan een optionele parameter. Deze functie heeft dan als "signature":

function showActionForm($action, $buttonText, $page, $productId = NULL) { /*...*/ }