Artikels invoegen in een databanktabel
Het gebruik van een databank en PHP voor het automatiseren van webinhouden, wordt pas echt zinvol als je op een gebruiksvriendelijke manier inhouden kan toevoegen aan de databank. Uiteraard kan je dit via PHPMyAdmin, de databankbeheersoftware (geschreven in PHP) die op de meeste hostingpakketten standaard al aanwezig is. Maar in PHPMyAdmin laat je de eindgebruiker best geen inhouden toevoegen.
In deze les maken we een HTML-formulier waarin de eindgebruiker de benodigde informatie kan invoeren. Het formulier bevat een "verzend"knop. Wanneer de gebruiker daarop klikt, stuurt hij/zij de inhoud van het formulier naar een PHP-bestand op de server. Dat bestand zal de verzonden informatie uitlezen en invoegen in de juiste kolommen in de tabel (articles) in de databank.
Ingrediënten
1. Een HTML-formulier
2. Een PHP-bestand dat de verzonden informatie bewaart.
Een invoerformulier in HTML
Een vrij volledige handleiding voor het bouwen van formulieren vind je via deze link: https://www.w3schools.com/html/html_forms.asp
We zorgen ervoor dat het HTML-formulier de structuur van de databanktabel volgt. Zo ziet onze tabel eruit in PHPMyAdmin:
We starten vanuit het HTML-sjabloon dat je via een link in de menubalk vindt. Daaraan voegen we een FORMULIER toe.
<div class="container">
<div class="row">
<div class="twelve columns">
<form method="post" action="save.php">
<div>
<input type="text" placeholder="Voer hier een titel in" name="title"/>
</div>
<div>
<label>Voer hier een datum in:</label>
<input type="date" name="articledate"/>
</div>
<div>
<label>Voer hier de tekst van het artikel in:</label>
<textarea name="content"></textarea>
</div>
<div>
<input type="text" id="cover" name="cover" placeholder="adres van de afbeelding"/>
</div>
<div>
<button id="bewaar">Bewaar</button>
</div>
</form>
</div>
</div>
</div>
Namen geven aan invoervelden
Met een <input>-element maken we een invoerveld in onze webpagina. Elke "input" krijgt ook een "name"-attribuut. We nemen hiervoor telkens de "kolomnaam" van de tabel in de databank. In de tabel "articles" in onze databank vinden we bijvoorbeeld de kolommen "title", "articledate" en "cover"... We gebruiken exact dezelfde benamingen voor de invoervelden van ons formulier.
Types geven aan invoervelden
Je kan aan een <input>-element ook een type-attribuut geven. Standaard is het type "text" als je tenminste tekst als invoer verwacht. Het type "date" tovert een datumselectorvenster tevoorschijn als je in het datumveld klikt (in de browser).
Veel tekst = textarea
De kolom "content" in onze databanktabel verwacht veel tekst. Een klein invoerveld maakt invoer van tekst moeilijk. Daarom kiezen we in dit geval voor een <textarea>-element. Aan dit element geef je eveneens een "name"-attribuut.