Avatar billede lsolesen Nybegynder
14. august 2003 - 14:51 Der er 4 kommentarer og
1 løsning

Selectbox med alle værdier skal submittes

Jeg har en selectbox, som skal submittes med alle de værdier der er i den. Men selectboxen har jeg måttet kalde underviserfag[] for at PHP opfatter den som et array, jeg kan trække ud.

De nederste to funktioner i nedenstående javascript ville vist fungere, hvis jeg ikke kaldte den underviserfag[], men bare underviserfag.

Jeg tilføjer værdier med følgende:

<input type='button' style="width:70px;" value='< Tilføj'
  onClick="copySelected(this.form.elements['fag[]'],this.form.elements['underviserfag[]'])">

Og bruger følgende javascript.

script type="text/javascript">
function deleteOption(object,index) {
    object.options[index] = null;
}

function addOption(object,text,value) {
    var defaultSelected = true;
    var selected = true;
    var optionName = new Option(text, value, defaultSelected, selected)
    object.options[object.length] = optionName;
}

function copySelected(fromObject,toObject) {
    for (var i=0, l=fromObject.options.length;i<l;i++) {
        if (fromObject.options[i].selected)
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
        if (fromObject.options[i].selected)
            deleteOption(fromObject,i);
    }
}

// til at markere alle elementer ved submit
/* DETTE ELEMENT FUNGERER IKKE
function submitform() { 
    selectAll(document.forms[0].underviserfag[]); 
    document.forms[0].submit();     
}
function selectAll(obj) {
    for (var i = 0; i<obj.length; i++) {
          obj.options[i].selected=true;
    }
}
*/
</script>
Avatar billede tipsen Nybegynder
14. august 2003 - 14:57 #1
Det er ikke standard-html at bruge underviserfag[] som name til select-boksen - derfor kan du ikke lave en løsning, som du kan være sikker på fungerer - derudover er det et javascript spørgsmål - ikke php og til sidst giver det ikke umiddelbart mening at tilsidesætte brugerens valg i select-boksen blot for at overskrive de valgte options med alle options - så kan du lige så godt bruge hidden-felter.
Avatar billede lsolesen Nybegynder
14. august 2003 - 15:05 #2
tipsen --> det er brugerens valg, som kommer over i boksen fra en anden boks, hvor der er mange valgmuligheder. Jeg tilsidesætter altså ikke brugerens valg. Årsagen til at jeg stiller spørgsmålet her, er at jeg ikke ville bruge [], hvis ikke det var i PHP. Derfor tænkte jeg, at andre måtte være stødt ind i samme problem - eller kan jeg gøre noget andet i PHP, som gør det, at jeg kan få det til at virke.

Det er intuitivt bedst for brugeren, at der bruges en selectboks, så brugeren let kan se, hvilke valg, vedkommende har gjort.
Avatar billede tipsen Nybegynder
14. august 2003 - 15:09 #3
Hvorfor smider du så ikke bare valgene i en selectbox samt i hidden-felter - så er du ikke afhængig af at klienten har javascript enablet.
Avatar billede lsolesen Nybegynder
14. august 2003 - 15:22 #4
Jeg har to bokse, hvor flyttes frem og tilbage som fx her:

http://www.html.dk/scripts/javascript/00006/
Avatar billede lsolesen Nybegynder
10. juni 2006 - 17:38 #5
Svar venligst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester