Avatar billede roadrunr Nybegynder
14. marts 2000 - 23:40 Der er 8 kommentarer og
1 løsning

Flyt indhold fra en <select>box til en anden <select>

Jeg har:
En selectbox(size=10), hvor jeg har listet en masse navne. Når man vælger et navn, skal man vha. en knap flytte navnet fra "navne-listen" over i en anden select-box, som indeholder alle de navne man vælger.

Hvordan flytter man navnene?

Avatar billede olebole Juniormester
15. marts 2000 - 02:02 #1
<ole>
Hvis de ligger i samme dokument, kan du ikke umiddelbart gøre det. Du kan sætte en 'value' på en 'option' i en 'select', med du skal reloade for at få skrevet teksten på din 'option'.
Det kan lade sig gøre, hvis du laver de to selects i to forskellige frames, hvor du opdaterer den ene og lader noget 'document.write' skrive din select - eller du kan lade den ene select ligge i et lag, som du skriver dynamisk ind i, når du trykker på knappen.
Find ud af, hvad der er smartest til dit brug, så skal jeg nok lave et eksempel til dig.
/VH
</bole>
Avatar billede roadrunr Nybegynder
15. marts 2000 - 08:17 #2
Hmm.... jeg var lige lidt for hurtig på knappen. Damn.
Jeg havde forestillet mig at man i navnelisten genererede navnene i selectboxen vha. "navne = new Array();", og derefter indexserede dem "navne[0], navne[1]. Og man brugte så javascript til at tilføje navnene til et andet Array i den anden selectbox.
Avatar billede olebole Juniormester
16. marts 2000 - 00:29 #3
<ole>
Bare rolig, jeg skal nok følge dig helt til døren - og du skal nok få dit svar ;-)

<select>
<option value=1>En
<option value=2>To
<option value=3>Tre
<option value=4>Fire
</select>

Hvis dette er din anden select, er det så '1', '2', '3' og '4' eller 'Et', 'To', 'Tre' og 'Fire' du vil erstatte med data fra din første select?
</bole>
Avatar billede roadrunr Nybegynder
16. marts 2000 - 02:31 #4
Prøv at tage denne kode og lav din egen html-fil. Så vil du se hvad den skal kunne. Det er noget som jeg har siddet og arbejdet på, men den er ikke helt perfekt endnu.
---------------------------------------------------------
<html>

    <head>
        <title>teste</title>

        <style>
        body, select, input, td {
            font-family:arial;
            font-size:8pt;
        }
        </style>

        <script>
        nameArray    = new Array("Peder Valdemar Hauerslev","Martin Nielsen Sørensen","Søren Kirketerp Gregersen");

        function init() {
            for (i=0; i < nameArray.length; i++) {
                var oOption = document.createElement("OPTION");
                oOption.text=nameArray[i];
                oOption.value=i;
                document.kylling.fra.add(oOption);       
            }
        }

        function moveToTil(what) {
            if (what+1) {
                var oOption = document.createElement("OPTION");
                oOption.text=document.kylling.fra.options[what].text + document.kylling.fra.options[what].value;
                oOption.value=document.kylling.fra.options[what].value;
                document.kylling.til.add(oOption);
                document.kylling.fra.options[what].removeNode(true);
            } else {
                alert("Du har ikke valgt et navn på listen!");
            }
        }

        function moveFromTil(what) {
            if (what+1) {
                var oOption = document.createElement("OPTION");
                oOption.text=document.kylling.til.options[what].text + document.kylling.til.options[what].value;
                oOption.value=document.kylling.til.options[what].value;
                document.kylling.fra.add(oOption);
                document.kylling.til.options[what].removeNode(true);
            } else {
                alert("Du har ikke valgt et navn på listen!");
            }
        }

        </script>

    </head>

    <body bgColor="white" onLoad="init();">

    <form name="kylling">
    <table border="0">
        <tr>
            <td><b>listefætter</b><br><select size="10" name="fra" style="width:200;"></select></td>
            <td><input type=button value="tilføj" onclick="moveToTil(document.kylling.fra.selectedIndex);"><br><br>
            <input type=button value="fjern" onclick="moveFromTil(document.kylling.til.selectedIndex);"></td>
            <td><b>Valgte</b><br><select size="10" name="til" style="width:200;"></select></td>
            <td><input type=button value="send ->"></td>
        </tr>
    </table>
    </form>

    </body>

</html>
---------------------------------------------------
Avatar billede olebole Juniormester
16. marts 2000 - 03:25 #5
Jeg forstår godt, hvad du gerne ville kunne, men det kan man ikke!
Du bliver som sagt nødt til at lægge dem i hver sin frame - eller form 'Til' i et lag. Det må dit design afgøre.
Hvilken løsning kunne du tænke dig?
Og lige et sidste spørgsmål: Er der noegen speciel grund til at navnene kommer fra et array? Stammer de fra en database, or what?
Avatar billede roadrunr Nybegynder
16. marts 2000 - 10:57 #6
Jamen, hvis du kigger på ovenstående eksempel, så virker det egentlig fint nok(hvor det ligger i samme dokument). Det med array'en er kun foreløbig - senere skal det kodes sammen med noget ASP.
Avatar billede olebole Juniormester
16. marts 2000 - 19:49 #7
OK - jeg har lige lidt småtravt nu, men jeg skal se om ikke jeg kan kaste et forslag op i aften ;-)
Avatar billede olebole Juniormester
04. april 2000 - 06:50 #8
<html>
<head>
<script language="javascript">
<!--

var n = document.layers;
var ie = document.all;

if (n) {
    visible='show';
    hidden='hide';
}else if (ie) {
    visible='visible';
    hidden='hidden';
}

var check = 0;
function chTex(){
    if (ie) {
        if (check==0) {
            lag1.innerHTML=mycont;
            document.all("lag1").style.visibility=visible; document.all("lag0").style.visibility=hidden;
            document.lag1.document.forms[1].elements[document.lag1.document.forms[1].length-3].focus();
            check = 1;
        }else{
            lag0.innerHTML=mycont;
            document.all("lag0").style.visibility=visible; document.all("lag1").style.visibility=hidden;
            document.lag0.document.forms[1].elements[document.lag0.document.forms[1].length-3].focus();
            check = 0;
        }
    }else if (n) {
        if (check==0) {
            document.lag1.document.write(mycont);
            document.lag1.document.close();
            document.layers["lag1"].visibility=visible; document.layers["lag0"].visibility=hidden;
            document.lag1.document.forms[0].elements[document.lag1.document.forms[0].length-3].focus();
            check = 1;
        }else{
            document.lag0.document.write(mycont);
            document.lag0.document.close();
            document.layers["lag0"].visibility=visible; document.layers["lag1"].visibility=hidden;
            document.lag0.document.forms[0].elements[document.lag0.document.forms[0].length-3].focus();
            check = 0;
        }
    }
}

var myValues = new Array();
var mycont = "";
var num = 0;
function makeCont(myNumber) {
        if (check==0) {
            lagId = 'lag0';   
        }else{
            lagId = 'lag1';
        }
    with (document[lagId].document.forms[num]) {
        for (i=0; i<length; i++){
            myValues[i] = elements[i].value;
        }
    }
// ************  I denne form-tag skriver du din action og method  ************
    mycont = "<form name='minForm'>";
    for (j=0; j<myValues.length; j++) {
        k = j+1;
        if (k<10) {
            k = "0"+k;
        }
        mycont += "<input type='text' name='input"+k+"' value='"+myValues[j]+"'><br>";
    }
    k++;
    for (l=k; l<(parseInt(k)+parseInt(myNumber)); l++) {
        if (l<10) {
            l = "0"+l;
        }
        mycont += "<input type='text' name='input"+l+"'><br>";
    }
    mycont += "</form><br>";
    chTex();
    if (ie) {
        num = 1;
    }
}

//-->
</script>

<style type="text/css">
.lag      {position:absolute;
      left: 210;
          top: 10px;
          width: 180px;
          color: #000000;
          font-family: verdana, arial, helvetica;
          font-size: 10px;
          }

</style>
</head>

<body>
<p><a href="#" onclick="makeCont('3');">Lav 3 nye boxe her...</a></p>

<div id="lag0" style="z-index:0; visibility: visible" class="lag">
<br><form name="minForm">
<input type="text" name="input01"><br>
<input type="text" name="input02"><br>
<input type="text" name="input03"><br>
<input type="text" name="input04"><br>
</form>
</div>
<div id="lag1" style="z-index:0; visibility: hidden" class="lag">
</div>

</body>
</html>

Avatar billede olebole Juniormester
04. april 2000 - 10:57 #9
Sikke noget vrøvl...Hehe
Se dette spørgsmål:
http://www.eksperten.dk/spm.asp?id=14529
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