Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[php & forms] Dynamisch een selected in <option> t

BasHamar
6 antwoorden
  • Tja, hoort volgens mij niet specifiek bij php thuis maar ja, maakt niet zoveel uit.

    Het volgende:
    Gegevens die eerder middels een formullier zijn ingevuld kunnen later weer gewijzigd worden. Nu zijn enkele velden geen vrije invoer maar list values m.a.w. een <select><option>, etc.

    Nu wil ik natuurlijk bij het wijzigen dat degene die default in mijn option naar de gebruiker wordt gepresenteerd, de waarde bevat uit de te wijzigingen gegevens.

    In een <select><option> contructie kun je met de TAG SELECTED aangeven wat de default option moet worden alleen dit is nogal statisch. Is er een methode om de selected option dynamisch te laten bepalen aan de hand van een eerder ingevoerde waarde?
    (gaarne een oplossing zonder de selectie 30 keer te moeten kopieren en dan gebruik te maken van 30 if statements)

    Voorbeeld:

    <select name="chng_uur" size="1">
    <option value=19 >19</option>
    <option value=20 selected>20</option>
    <option value=21 >21</option>
    <option value=22 >22</option></select>

    Somebody?

    thnx
  • Je kunt de gekozen optie de volgende keer gewoon als eerste option weergeven.
  • [quote:8a9e29ba23="janjansen"]gaarne een oplossing zonder de selectie 30 keer te moeten kopieren en dan gebruik te maken van 30 if statements[/quote:8a9e29ba23]Zo te zien heb je een lijst met opeenvolgende nummerieke waarden, ergo: een for-loopje! Lijkt me wel zo handig… En als je andere waarden wilt doorlopen doe je ze in een array en doorloop je die array met een for-loopje. Maar voor gevallen als deze zou ik geen if-statement gebruiken, nog los van het feit dat een switch overzichtelijker is.

    - Bas
  • Normaalgesproken gebruik ik voor het weergeven van een <select> een functie of class.

    pseudo voorbeeldje
    [code:1:a69c6ec4e0]
    $select = new SelectBox();
    $select->addOption('waarde1', 'tekst1', $gekozenwaarde);
    $select->addOption('waarde2', 'tekst2', $gekozenwaarde);
    $select->printToScreen();
    [/code:1:a69c6ec4e0]
    Waarbij de addOption telkens de waarde vergelijkt met de "gekozen waarde" (uit een form, database, whatever) en als deze gelijk zijn wordt een selected="selected"[/color:a69c6ec4e0] (natuurlijk wel xhtml compliant code genereren ;)) toegevoegd.
  • @Annie: heb je dergelijke klassen kant-en-klaar liggen?

    - Bas
  • Ja, alleen geloof ik niet in het open-source-freeware verhaal :lol: ;)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.