select box met selected waarde uit de database
Ik loop nu al een uur te darren met iets dat toch heel simpel zou moeten zijn. Ik heb een select box met jaren. Op de update pagina dient echter het jaar geselecteerd te zijn die in de database staat, maar ik krijg het niet voor elkaar. Dit is wat ik heb:
en in de select box
Ik krijg de lijst met jaren maar de database waarde is niet geselecteerd. Wat doe ik fout?
Alvast bedankt
Code (php)
1
2
3
2
3
$huidigJaar = date("Y");
$startJaar = date("Y") - 40;
$jaren = range ($huidigJaar, $startJaar);
$startJaar = date("Y") - 40;
$jaren = range ($huidigJaar, $startJaar);
en in de select box
Code (php)
Ik krijg de lijst met jaren maar de database waarde is niet geselecteerd. Wat doe ik fout?
Alvast bedankt
Je sluit het value attribuut niet af voordat je selected="selected" aan het option element toevoegd, er staat dus value="1980selected="selected"" ipv value="1980" selected="selected"
Maak hier een apart brokje HTML van die je in een PHP-variabele stopt om e.e.a. wat beter leesbaar te houden:
(let ook op de spatie voor ' selected=...')
Code (php)
(let ook op de spatie voor ' selected=...')
Waarom een "value" opgeven als je in de <option> exact hetzelfde is?
Volgens de specificatie van HTML 4.1 (en die is al een tijdje uit) is een value niet nodig. Als hij niet gegeven wordt, wordt de waarde van tussen <option> en </option> zelf gepakt.
Dus je code wordt dan nog leesbaarder.
Volgens de specificatie van HTML 4.1 (en die is al een tijdje uit) is een value niet nodig. Als hij niet gegeven wordt, wordt de waarde van tussen <option> en </option> zelf gepakt.
Dus je code wordt dan nog leesbaarder.
Quote:
Waarom een "value" opgeven als je in de <option> exact hetzelfde is?
Uniformiteit omdat dit niet altijd het geval is?
Ik genereer dropdowns vaak a.d.h.v. arrays of equivalent (een lijst van key-value paren, de key voor het value-attribuut en de value voor het label).
Als iets niet hoeft wil dat niet zeggen dat het niet mag :p.
Indien je dan toch voor een van de twee varianten zou moeten kiezen (1 vorm lijkt mij handiger) zou ik de variant met value-attribuut kiezen.
Hi Bo, Thomas en Eddy. Bedankt voor de reacties en input. Ik heb dit nu werkend maar loop dus tegen een volgend select box probleem aan. Bij de bovenstaande select box waren de value en de optie het zelfde. Ik heb nu echter een select box waar de value een id is en de optie text. Ik heb het volgende geprobeerd:
Maar met deze wijze staan alle opties als selected weergegeven. Wat is hier fout aan?
Bij voorbaat dank
Code (php)
Maar met deze wijze staan alle opties als selected weergegeven. Wat is hier fout aan?
Bij voorbaat dank
Wat je nu doet is een beetje raar, je vergelijkt de key (die variabel is) met een value (die ook variabel is) het is dan natuurlijk zeker mogelijk dat er meerdere options geselecteerd worden. In de code van het eerste probleem had je een vaste waarde ($product_info['bouwjaar']) die maar één waarde kan zijn, maar $value['categorie_id'] heeft verschillende waardes deze variabele komt immers uit een loop.
Hi Bo bedankt voor je reactie. Ik heb in de database een veld categorie_id. In de update pagina dient die dus geselecteerd te zijn. Maar ik dien tevens de mogelijkheid te hebben die waarde te kunnen veranderen vandaar dat ik die loop gebruik. Hoe zou ik dat anders moeten aanpakken.
Bij voorbaat dank
Bij voorbaat dank
Je kunt de geselecteerde waarde niet uit dezelfde query halen als de query waarmee je alle categorieën ophaalt. Je zult dus een aparte query moeten maken waarmee je de huidige categorie selecteert.
Daarnaast is het ongebruikelijk (en misschien levert dit fouten op) dat je de index waarmee je $categories doorloopt ($key) binnen deze loop ophoogt.
Ik zou er voor zorgen dat de informatie die je wilt afdrukken / selecteren in eerste instantie goed in $categories zit, in plaats van het op het laatste moment wijzigen van de betrokken waarden...
Ik zou er voor zorgen dat de informatie die je wilt afdrukken / selecteren in eerste instantie goed in $categories zit, in plaats van het op het laatste moment wijzigen van de betrokken waarden...




