5.3 CRUD - Update
We hebben nu een Create en een Read. We gaan nu de update maken.
We maken een linkje op de view pagina waarmee je de betreffende regel kan gaan updaten. In dit geval wordt de link in een aparte kolom geplaatst. De link wordt weegegeven door een variabele die we later gaan invullen voor nu kunnen we de variabele boven in de loop even leeg initialiseren.
<a href=\"".$editLink."\" role=\"button\">Edit</a>
Vraag: zie je de \" in de string hierboven, wat betekend dat?
De view pagina ziet er nu ongeveer zo uit:
Wat moet er nu in de edit link komen? Twee dingen de control die moet worden uigevoerd en op een of andere manier een verwijzing naar de huidige regel De control moet immers weten welke regel je wilt gaan editen!
Noem je edit control control.php. De link moet nu wijzen naar deze control, maar hij zal oo moeten meegeven welke regel je wilt veranderen. Wat is de key van de regel? Geeft deze key mee volgens de GET methode. Weet je nog hoe dat werkt? Indien niet lees het dan nog eens na op: https://www.tutorialspoint.com/php/php_get_post.htm
In de while-loop van de view.php weet je telkens wat de key is want die druk je immers ook af. Zorg er dus voor dat de link 'Edit' die je net hebt gemaakt een link krijgt naar de control.php file met als parameter de key.
Maak nu de edit.php en druk de parameter, de key af. Ga pas door als je dit voor elkaar hebt.
We moeten nu een form maken waarin we het record (de regel / row) laten zien en kunnen veranderen. We willen niet dat de key wordt veranderd. Die wordt wel getoond op de edit pagina, maar alleen de naam van de airline kan worden gewijzigd.
We maken dus een form en de twee waarden, airline code en airline naam dienen ingevuld te zijn.
Omdat er bijna geen code in de edit.php zal staan, kunnen we deze ook edit.html noemen. Het is immers vrijwel volledig een view pagina waar vrijwel geen code in staat.
In de edit.html staat een submit knop (net zoals in de pagina waar je een regel toevoegd) en die post de nieuwe naam waarde naar de control edit.php. In de edit.php wordt de juiste query uitgevoerd. In dit geval een update query:
Dit werkt bijna hetzelfde als bij de insert, alleen de query is net iets anders. Werk dit verder zelf uit.
Site structuur
We hebben nu de files zoals aangegeven in de de onderstaande tabel. Deze tablel geeft overzicht van hoe de website in elkaar zit.
- Maak de tabel verder af.
File | Wat | Type (MVC) | Aangeroepen door | Roept aan |
view.php | Laat lijst zien met alle airlines | View/Control | Landing page | Edit, Insert |
insert.html | Nieuwe airline | View | view.php | |
insert.php | ||||
edit.html | ||||
edit.php | ||||
crud.php | ||||
db.php |