Avatar billede roadrunr Nybegynder
03. april 2000 - 20:02 Der er 10 kommentarer og
1 løsning

Selectbox --> inputbox

Jeg har en selectbox, hvor jeg kan vælge forskellige værdier. Når man trykker på "submit-knappen" skal den tage værdien fra selectboxen og generere en inputbox hvor værdien kommer til at stå i. Dvs. hver eneste gang man trykker submit, så laver den en nye inputbox hvor værdien kommer til at stå i. På den måde skulle der gerne fremkomme en liste(af inputboxe) med alle ens valg.

Alle inputboxene skal senere sendes videre til en anden side, hvor det skal være muligt at checke hvor man inputboxe der er i alt.

Hvordan kan sådan noget gøres?
Avatar billede olebole Juniormester
04. april 2000 - 06:56 #1
<ole>
Hi roadrunr.
Jeg troede sgu da, jeg havde svaret på:
http://www.eksperten.dk/spm.asp?id=13340
Det havde jeg åbenbart IKKE. Heldigvis havde jeg stadig eksemplet liggende på min HD, så jeg har smidt det op til dig...Undskyld, men som du nok ved, har jeg gang i en masse besvarelser her på sitet, så engang imellem smutter der én. Skulle det ske igen, må du (og andre) endelig prøve at spørge, hvor mit svar bliver af, da jeg er på fast mailing-list i flere kategorier ;-)

Jeg kan se, dit oprindelige koncept har ændret sig en smule. Som plaster på såret prøver jeg lige at finde et svar på det også.

/VH
</bole>
Avatar billede olebole Juniormester
04. april 2000 - 09:35 #2
AHAHHH...det var ikke dit spørgsmål, jeg havde besvaret, men volstrups:
http://www.eksperten.dk/spm.asp?id=13582

Jeg prøver at lave noget i løbet af dagen ;-)
Avatar billede olebole Juniormester
04. april 2000 - 11:01 #3
Prøv dette:

<html>
<head>
<script language="javascript">
<!--

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

function chTex(){
    if (ie) {
            lag1.innerHTML=mycont;
    }else if (n) {
            document.lag1.document.write(mycont);
            document.lag1.document.close();
    }
}

var myValues = new Array();
var mycont = "";
var num = 0;
function makeCont() {
    with (document.minForm) {
        myValues[num] = minSel[minSel.selectedIndex].value;
        num++;
    }
// ************  I dette form-tag skriver du din action og method  ************
    mycont = "<form name='minForm2'>";
    for (i=0; i<myValues.length; i++) {
       
        mycont += "<input type='text' name='"+i+"' value='"+myValues[i]+"'><br>";
    }
    mycont += "<input type='hidden' name='antal' value='"+num+"'><input type=submit value=' send '></form><br>";
    chTex();
}

//-->
</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>
<form name="minForm">
<select name=minSel onchange=makeCont();>
<option value="GurliMargrethe">GurliMargrethe
<option value="Gunhildur">Gunhildur
<option value="Bartholomaeous">Bartholomaeous
<option value="Ole">ole
</select>
</form>

<div id="lag1" style="visibility: visible" class="lag">
</div>

</body>
</html>

Med formen bliver sendt en variabel, der hedder 'antal'. Den holder antallet af navne.
Håber, du kan bruge det ;-)

/VH
Avatar billede olebole Juniormester
04. april 2000 - 11:07 #4
I stedet for at have kaldet liggende på 'onchange', kan du lave en <input type='button' value=' flyt ' onclick='makeCont();'>
Så skal du lave for-løkken om til:

    for (i=0; i<myValues.length-1; i++) {

hvis knappen ligger efter select'en.
Avatar billede roadrunr Nybegynder
04. april 2000 - 13:33 #5
Det virker bare fint, tak
Kunne du evt. komme med en lille ekstra funktion, hvor man kan slette punkterne igen?
Avatar billede olebole Juniormester
04. april 2000 - 13:40 #6
Det kommer i aften, jeg må videre nu ;-)
Avatar billede olebole Juniormester
05. april 2000 - 05:42 #7
Ta' DEN:

<html>
<head>
<script language="javascript">
<!--

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

var myValues = new Array();
var mycont = "";
var num = 0;
var newNum = 0;

function sletOgRet(which) {
    myValues[which] = "";
    newNum = newNum-1;
    chTex();
}

function makeCont() {
    with (document.minForm) {
        myValues[num] = minSel[minSel.selectedIndex].value;
        num++;
        chTex();
    }
}

function chTex(){
    newNum = 0;
// ************  I dette form-tag skriver du din action og method  ************
    mycont = "<form name='minForm2'>";
    for (i=0; i<myValues.length; i++) {
        if (myValues[i]!="") {
            mycont += "<input type='text' name='"+newNum+"' value='"+myValues[i]+"' onfocus='this.blur();'>&nbsp;&nbsp;<input type=button value=slet onclick=sletOgRet('"+i+"');><br>";
            newNum++;
        }
    }
    mycont += "<input type='hidden' name='antal' value='"+newNum+"'><br><input type=submit value=' send '></form><br>";
    if (ie) {
            lag1.innerHTML=mycont;
    }else if (n) {
            document.lag1.document.open();
            document.lag1.document.write(mycont);
            document.lag1.document.close();
    }
}

//-->
</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>
<form name="minForm">
<select name=minSel onchange=makeCont();>
<option value="GurliMargrethe">GurliMargrethe
<option value="Gunhildur">Gunhildur
<option value="Bartholomaeous">Bartholomaeous
<option value="Ole">ole
</select>
</form>

<div id="lag1" style="visibility: visible" class="lag">
</div>

</body>
</html>

/VH
Avatar billede roadrunr Nybegynder
05. april 2000 - 10:11 #8
Hvordan "Requester" man dem på den side de sendes til?.. her mener jeg med henblik  på "ASP" Request.Form() eller Request.QueryString() - jeg kan nemlig ikke få værdierne frem.
Avatar billede olebole Juniormester
06. april 2000 - 00:48 #9
Som det er lavet, hedder variablerne '0', '1', '2'...og derudaf. Det samlede antal variabler ligger i variablen 'antal'.
Du kan prøve at lave et dokument 'modt.html' og så skrive dette i din form-action. Det skal se sådan ud:

<html>
<body>

<script language="javascript">
<!--

var astr = location.search;
    document.write(astr);

//-->
</script>

</body>
</html>

så kan du se dem alle. Hvis du vil lave om på navnene, gør du det sådan:
  mycont += "<input type='text' name='"+newNum+"'
kan du skrive således, i stedet:
  mycont += "<input type='text' name='minVarabel_"+newNum+"'
så vil den kalde dem 'minVariabel_1' osv.

Håber det hjælper.
Avatar billede roadrunr Nybegynder
06. april 2000 - 15:41 #10
Ja den har jeg så siden fundet ud af. Men mit problem opstår når jeg også har andre felter, som skal sendes sammen med en valgte punkter fra select-boxen. Dvs. når jeg bruger den sammen med en anden <form>, så virker den ikke rigtig.
Det jeg gør ér, at jeg fjerner den <form> som javascriptet laver, for i stedet at sende med den oprindelige.

Håber det giver mening, og at du kan hjælpe mig. Hvis du kan vejlede mig til enden, vil der naturligvis komme 100 point oveni.
Avatar billede olebole Juniormester
06. april 2000 - 23:27 #11
Det skulle undre mig, om ikke jeg kan hjælpe...men det går ikke på det foreliggende grundlag.
Prøv at sende mig lidt mere kode:
oc@adr.dk
så skal jeg prøve at se på det.
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