Door
Klaas Vaag
op 31-08-2015 12:57
gewijzigd op 31-08-2015 13:09
4.738 views
Hallo iedereen,
Ik heb een vraag omtrent een form waarden. Wanneer ik een waarde wil doorsturen naar het verwerkingsscript dan lijkt het er op als of ik dit maar met een tegelijk kan doen. Wat ik graag wil bereiken is om meerdere waarden tegelijk te versturen zodat deze correct in de database terecht komen. Het gaat hier bij om de "name" waarden die het formulier mee stuurt. Ik zal een voorbeeld geven.
Ik probeer beide waarden van option in de database te krijgen maar het ziet er naar uit dat alleen de "name" waarde word opgeslagen terwijl ik beide waarden zou willen opslaan. Is dit uberhaupt wel mogelijk?
Enige input om het leerproces te vergemakkelijken is zeer welkom en wil ik graag voor bedanken.
Ik haal beide waarde uit de database. De tweede waarde is een naam (als in leesbaar) en de eerste is een getal (id) die bij die naam hoort. Op deze manier kan ik een naam selecteren (met overeenkomstige id) om die weer in de database te stoppen. Als ik dan de pagina oproept om de gegevens te herzien dan zie ik de gegevens die bij die ID horen.
Als ik dan de pagina oproept om de gegevens te herzien dan zie ik de gegevens die bij die ID horen.
Je draagt zelf al de oplossing aan: druk de waarde bij dat ID af?
Of het moet echt de bedoeling zijn dat je meerdere waarden (IDs) opslaat - in dat geval moet je een soort van multiselect maken.
Nota bene: Je hebt als het ware een "interne waarde" voor opslag en een "externe waarde" (label) voor weergave. Het voordeel van het opslaan van zo'n interne waarde in plaats van een explicitiete externe waarde is dat je dan nog steeds het label kunt veranderen zonder dat je verder iets in je database hoeft aan te passen. Dat zou anders zijn als je alles aan labels zou ophangen.
[quote="Klaas Vaag op 31/08/2015 13:58:14"]Ik haal beide waarde uit de database.
<knip>
Als ik dan de pagina oproept om de gegevens te herzien dan zie ik de gegevens die bij die ID horen.
Je draagt zelf al de oplossing aan: druk de waarde bij dat ID af?
[/quote]
Nee, totaal niet. Als ik een print_r($_POST); doe dan komt de ID niet mee, wel de naam zoals weergegeven in de <select name=""> maar niet de ID die bij de naam hoort.
Ik lees ook dingen als een array, werkt dit ook bij een select veld?
Waar komt het lijstje met options vandaan? (uit de database?)
Wat ga je doen met de gekozen option? (wegschrijven naar de database?)
1. zorg dat de database tabel een kolom met een unique id heeft.
2. geef de aan de value tag het unique id mee
3. na submit kun je aan de hand van het unique id weer alle relavante informatie uit de database halen met
Dit is het select veld. Wat het doet is de namen laten zien (db_column2) terwijl de waarde de ID is waar die naam bij hoort (db_column1).
Als je bijvoorbeeld een database met bedrijven hebt dan heb je als naam bedrijf A met daaraan een ID voor de database. Indien er een document binnen komt en je registreert deze dan wil je het bedrijf met ID bij dat doucment hebben.
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
?>
//Added Id for Options Element
<option value="<?php echo $row['db_column1']; ?>"><?php echo $row['db_column2']; ?></option><!--Echo out options-->
<?php
}
?>
</select>
In dit geval word alleen de value (db_column1) meegegeven maar niet de andere waarde. En zoals ik al eerder vroeg, zou dit ook met een array kunnen? Ik weet dat het kan met input type checkbox maar geldt dit ook voor select?
Nee dat gaat dus niet, en dat is ook de reden dat ik hamer op een unique id die je na het POSTEN van het formulier kunt gebruiken om de overige waarden uit de database te trekken
Maar als ik jou goed begrijp dan zou ik die ID kunnen gebruiken om gegevens uit de database te krijgen? Want er uit krijg ik ze wel maar er in dus niet blijkbaar...