Avatar billede jfl Nybegynder
09. oktober 2002 - 15:18 Der er 5 kommentarer og
1 løsning

<select ONCLICK="?"> skal markere i anden <select>

Jeg har 2 select.
Hvis man klikker på f.eks. alfa i select A, skal alt der starter med alfa markeres i select B, også selvom der er felter som allerede er selected.
Hvordan løser man den?

<select name="A">
<option value="1">alfa
<option value="2">beta
<option value="3">gamma
</select>

<select name="B">
<option value="4">alfa : ding
<option value="5">alfa : dong
<option value="6">alfa : dang
<option value="7">beta : dung
<option value="8">beta : dång
<option value="9">gamma : deng
<option value="10">gamma : dæng
<option value="11">gamma : døng
</select>
Avatar billede jfl Nybegynder
09. oktober 2002 - 15:19 #1
Begge <select> er selvfølgelig <select MULTIPLE>
Avatar billede jakoba Nybegynder
09. oktober 2002 - 15:37 #2
script i head:

<script type='text/javascript'>

function fraSel1TilSel2( frmElem ) {
    var opt1 = frmElem.A.options;
    var opt2 = frmelem.B.options;
    for (var i=0; i<opt1.length; i++) {
        var text1 = opt1[i].text;
        for (var j=0; j<opt2.length; j++ ) {
            if ( opt2[j].text == text1 ) {
                opt2[j].checked = opt1[i].checked;
            }
        }
    }
}; //end fraSel1TilSel2( HTML Form element )

</script>

i den første select skal der så være en onchange:

<select name="A" multiple onchange="fraSel1TilSel2(this.form);">

mvh JakobA
Avatar billede jfl Nybegynder
09. oktober 2002 - 16:43 #3
Det ser ikke ud til at virke:

<HTML>
<HEAD>
    <script type='text/javascript'>
    function fraSel1TilSel2( frmElem ) {
        var opt1 = frmElem.A.options;
        var opt2 = frmElem.B.options;
        for (var i=0; i<opt1.length; i++) {
            var text1 = opt1[i].text;
            for (var j=0; j<opt2.length; j++ ) {
                if ( opt2[j].text == text1 ) {
                    opt2[j].checked = opt1[i].checked;
                }
            }
        }
    }; //end fraSel1TilSel2( HTML Form element )
    </script>
</HEAD>
<BODY>

<FORM>
<select name="A" MULTIPLE onchange="fraSel1TilSel2(this.form);">
<option value="1">alfa
<option value="2">beta
<option value="3">gamma
</select>

<select name="B" MULTIPLE>
<option value="4">alfa : ding
<option value="5">alfa : dong
<option value="6">alfa : dang
<option value="7">beta : dung
<option value="8">beta : dång
<option value="9">gamma : deng
<option value="10">gamma : dæng
<option value="11">gamma : døng
</select>
</FORM>

</BODY>
</HTML>
Avatar billede jfl Nybegynder
09. oktober 2002 - 16:44 #4
Iøvrigt vil jeg gerne have omdøbt A & B til A[] og B[] da det skal bruges til Php.
Avatar billede jakoba Nybegynder
09. oktober 2002 - 17:01 #5
Der var også et par grimme fejl. forkert sammenligning og så prøvede jeg at bruge checked hvor det hedder selected.
plus options skal afsluttes med </option>
Det er ikke korrekt html at lave et navn der indeholder '[' eller ']'.
Og jo man kan godt hente værdierne i php og asp selvom navnet ikke er 'A[]'

<HTML>
<HEAD>
    <script type='text/javascript'>
    function fraSel1TilSel2( frmElem ) {
        var opt1 = frmElem.A.options;
        var opt2 = frmElem.B.options;
        for (var i=0; i<opt1.length; i++) {
            var text1 = opt1[i].text;
            for (var j=0; j<opt2.length; j++ ) {
                if ( opt2[j].text.indexOf(text1) == 0 ) {
                    opt2[j].selected = opt1[i].selected;
                }
            }
        }
    }; //end fraSel1TilSel2( HTML Form element )
    </script>
</HEAD>
<BODY>

<FORM>
<select name="A" MULTIPLE onchange="fraSel1TilSel2(this.form);">
<option value="1">alfa</option>
<option value="2">beta</option>
<option value="3">gamma</option>
</select>

<select name="B" MULTIPLE>
<option value="4">alfa : ding</option>
<option value="5">alfa : dong</option>
<option value="6">alfa : dang</option>
<option value="7">beta : dung</option>
<option value="8">beta : dång</option>
<option value="9">gamma : deng</option>
<option value="10">gamma : dæng</option>
<option value="11">gamma : døng</option>
</select>
</FORM>

</BODY>
</HTML>

mvh JakobA
Avatar billede jfl Nybegynder
10. oktober 2002 - 09:30 #6
Perfekt :)

For at undgå at mine variabler skal have [] i enden for at Php kan se det som et array har jeg lavet denne funktion:
    function qstr_array ($str_name) {
        $qstr = str_replace($str_name, $str_name."[]", $_SERVER["QUERY_STRING"]);
        parse_str($qstr, $q_array);
        return $q_array[$str_name];
    }
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