Select formulier element opslaan in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick S

patrick S

10/10/2014 11:49:51
Quote Anchor link
Hallo,

Ik heb een aantal select elementen in een formulier staan met vaste opties.
De klant wil graag de opties in de select elementen zelf kunnen toevoegen / wijzigen of verwijderen.

Nu is het beheer om de opties te kunnen toevoegen niet zo moeilijk om te maken.
Maar hoe ga ik de values van de select elementen opslaan in de database nadat een bezoeker het formulier verzonden heeft.

Want als iemand de optie later verwijderd is de value die in de database staat niet meer te koppelen aan een value die in de database eerder was aangemaakt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<select>
<option value="">Maak een keuze</option>
<?php
// Uit de database komt een array
$select_options = array(array('value' => 'optie1', 'name' => 'Optie 1'), array('value' => 'optie2', 'name' => 'Optie 2'));
foreach($select_options AS $select_option)
{

    echo '<option value="'.$select_option['value'].'">'.$select_option['name'].'</option>';
}

?>

</select>


Heeft iemand een idee hoe ik dit kan doen?

Alvast bedankt.

Mvg, Patrick
 
PHP hulp

PHP hulp

23/12/2024 08:53:29
 
Obelix Idefix

Obelix Idefix

10/10/2014 13:44:52
Quote Anchor link
Een extra kolom maken en daarin zetten of de optie actief is of niet?
 
Robin vb

Robin vb

11/10/2014 22:28:33
Quote Anchor link
Als je de huidig geselecteerde waarde uit een dropdown wilt hebben kun je gewoon $_POST['dropdown_lijst'] gebruiken? Sorry als dit niet is wat je bedoelt, ik snap niet 100% wat je wilt doen!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/10/2014 22:37:50
Quote Anchor link
Herkenbaar. als je dynamische formulieren maakt dan mag een eenmaal aangemaakte optie nooit meer weg gehaald worden uit de database. Immers een optie kan in het verleden gebruikt zijn en je database zou dan inconsistent worden. Om dit te voorkomen kun je twee dingen doen.

1. Relaties aanbrengen tussen je tabellen en zo instellen dat als een optie verwijderd wordt ook in de andere tabel deze opties verdwijnen. In jouw geval niet handig want je wilt niet iets uitwissen dat in het verleden is gedaan.

2. Opties nooit weghalen maar in plaats daarvan een extra kolom 'deleted' aan de tabel toevoegen en alleen opties laten zien waarvan deleted 0 (FALSE) is. Voor de gebruiker kun je gewoon een knop 'delete' maken maar in werkelijkheid wordt de optie niet uit de tabel verwijderd maar enkel wordt de optie aangepast met deze query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE opties SET 'deleted'=1 WHERE id=?
Gewijzigd op 11/10/2014 22:39:20 door Frank Nietbelangrijk
 
Patrick S

patrick S

14/10/2014 00:13:37
Quote Anchor link
Opgelost! Bedankt Frank en Obelix.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.