Avatar billede cyberdude Nybegynder
07. marts 2002 - 19:14 Der er 6 kommentarer og
1 løsning

opsamling af data i javascript....

Hejsa!

Jeg har fået konstureret nedenstående script....
( http://www.eksperten.dk/spm/182077 )

Nu er mit problem bare at name="levgr" IKKE må have [] på til sidst så jeg kan vidrebehandel det i php... :-((
Kan man på nogen måde få javascriptet til at opsamle den værdi som findes i elementet value i hver checkboks..
eks. hvis jeg makere øvereste OG nedereste checkboks...
Så vil jeg gerne have en variabl/array med et eller andet navn eks. levbox som så indeholder (i eksemplet vil det være) 9, 13

Er det muligt at påbygge denne funktionalitet til scriptet ??

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
  <!--
  function checkCount( elem, frm ){
      var allowedCount;
        var checkedElems = 0;
        for( i = 0; i<frm.kundegr.length; i++ ){
            if( frm.kundegr[i].checked ){
              allowedCount = frm.kundegr[i].value;
                break;
            }
        }
        if( allowedCount == 1 ){
                allowedCount = 0;
        }
        if( allowedCount == 4 ){
                allowedCount = frm.levgr.length;
        }

        for( i=0; i < frm.levgr.length; i++ ){
          if( frm.levgr[i].checked ){
              checkedElems++;
                if( checkedElems > allowedCount ){
                    alert( "Du kan kun velge " + allowedCount + ".\nSiste valg blir fjernet");
                    elem.checked = !elem.checked;
                    break;
                }
            }
        }
    }
  //-->
  </SCRIPT>
</head>

<body>
<form name="frm">
Pakke:<br>
<input type="radio" name="kundegr" value="1"> minimal<br>
<input type="radio" name="kundegr" value="2"> basis<br>
<input type="radio" name="kundegr" value="3"> plus<br>
<input type="radio" name="kundegr" value="4"> vip<br>

<br>
<input type='checkbox' name='levgr' value='9' onclick="checkCount(this, this.form);"> Beklædning -> Dametøj<br>
<input type='checkbox' name='levgr' value='10' onclick="checkCount(this, this.form);"> Beklædning -> Herretøj<br>
<input type='checkbox' name='levgr' value='12' onclick="checkCount(this, this.form);"> Beklædning -> Lingeri<br>
<input type='checkbox' name='levgr' value='13' onclick="checkCount(this, this.form);"> Beklædning -> Sko<br>

</form>


</body>
</html>

// cyberdude
Avatar billede olebole Juniormester
07. marts 2002 - 19:44 #1
<ole>
Kan du ikke bare bladre dem igennem og - hvis de er checked - smide deres value ind i en kommasepareret streng, som du gemmer i et hidden-field på onsubmit? Det er en meget udbredt metode  ;o)
/mvh
</bole>
Avatar billede cyberdude Nybegynder
07. marts 2002 - 19:50 #2
og det du lige skrev fattede jeg ikke ret meget af......
Jeg har ikek den vilde forstand på javascript.....

Kan du give et lille eksempel ?
Avatar billede olebole Juniormester
07. marts 2002 - 19:52 #3
...altså definer  minStreng="";  og så skriv dit skript om her:

        for( i=0; i < frm.levgr.length; i++ ){
          if( frm.levgr[i].checked ){
              minStreng += frm.levgr[i].value+",";
              checkedElems++;
                if( checkedElems > allowedCount ){
                    alert( "Du kan kun velge " + allowedCount + ".\nSiste valg blir fjernet");
                    elem.checked = !elem.checked;
                    break;
                }
            }
        }

...og lav til allersidst noget:

frm.mitHiddenField.value = minStreng;

/mvh
Avatar billede cyberdude Nybegynder
07. marts 2002 - 21:03 #4
hmmm det funger ikke rigtigt.....

sådnat her ser mit script ud nu
---- snip ------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function checkCount( elem, frm ){
var allowedCount;
var checkedElems = 0;
for( i = 0; i<frm.kundegr.length; i++ ){
if( frm.kundegr[i].checked ){
allowedCount = frm.kundegr[i].value;
break;
}
}
if( allowedCount == 1 ){
allowedCount = 0;
}
if( allowedCount == 4 ){
allowedCount = frm.levgr.length;
}

for( i=0; i < frm.levgr.length; i++ ){
if( frm.levgr[i].checked ){
minStreng += frm.levgr[i].value+",";
checkedElems++;
if( checkedElems > allowedCount ){
alert( "Du kan kun velge " + allowedCount + ".\nSiste valg blir fjernet");
elem.checked = !elem.checked;
break;
}
}
}
frm.levgrbox.value = minStreng;
}
//-->
</SCRIPT>
</head>

<body>
<form name="frm">
Pakke:<br>
<input type="radio" name="kundegr" value="1"> minimal<br>
<input type="radio" name="kundegr" value="2"> basis<br>
<input type="radio" name="kundegr" value="3"> plus<br>
<input type="radio" name="kundegr" value="4"> vip<br>

<br>
<input type='checkbox' name='levgr' value='9' onclick="checkCount(this, this.form);"> Beklædning -> Dametøj<br>
<input type='checkbox' name='levgr' value='10' onclick="checkCount(this, this.form);"> Beklædning -> Herretøj<br>
<input type='checkbox' name='levgr' value='12' onclick="checkCount(this, this.form);"> Beklædning -> Lingeri<br>
<input type='checkbox' name='levgr' value='13' onclick="checkCount(this, this.form);"> Beklædning -> Sko<br>
<input type="hidden" name="levgrbox" value="">
</form>


</body>
</html>
---- snap -----

den melder fejl i linie 26...
Og det er denne her linie..
minStreng += frm.levgr[i].value+",";
... ??
Avatar billede olebole Juniormester
07. marts 2002 - 22:33 #5
Alt er, som det skal være så  ;o)
Du skal erklære din variable, globalt (så alle funktioner er klar over, den eksisterer) - og fylde den med en tom streng:
<html>
<head>
<title>Untitled</title>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var minStreng = "";
function checkCount( elem, frm ){
var allowedCount;
... osv, osv ...

/mvh
Avatar billede cyberdude Nybegynder
07. marts 2002 - 22:46 #6
hmm det funger ikek rigtigt....

Hvis jeg eks. vælger checkboksene med value 9 & 10 så bliver outputtet i $levgrbox 9,9,10,

og hvis jeg vælger de 3 første (hvor jeg kun må vælge 2 så bliver resultatet det her : 9,9,10,9,10,12,

Så den tæller dem ligesom med flere gange.... ikek særlig smart....

Er der noget jeg har overset som skal ændres ?

her er scriptet som det ser ud nu....

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var minStreng = "";
function checkCount( elem, frm ){
var allowedCount;
var checkedElems = 0;
for( i = 0; i<frm.kundegr.length; i++ ){
if( frm.kundegr[i].checked ){
allowedCount = frm.kundegr[i].value;
break;
}
}
if( allowedCount == 1 ){
allowedCount = 0;
}
if( allowedCount == 4 ){
allowedCount = frm.levgr.length;
}

for( i=0; i < frm.levgr.length; i++ ){
if( frm.levgr[i].checked ){
minStreng += frm.levgr[i].value+",";
checkedElems++;
if( checkedElems > allowedCount ){
alert( "Du kan kun velge " + allowedCount + ".\nSiste valg blir fjernet");
elem.checked = !elem.checked;
break;
}
}
}
frm.levgrbox.value = minStreng;
}
//-->
</SCRIPT>
</head>

<body>
<form name="frm" action="test5.php" method="post">
Pakke:<br>
<input type="radio" name="kundegr" value="1"> minimal<br>
<input type="radio" name="kundegr" value="2"> basis<br>
<input type="radio" name="kundegr" value="3"> plus<br>
<input type="radio" name="kundegr" value="4"> vip<br>

<br>
<input type='checkbox' name='levgr' value='9' onclick="checkCount(this, this.form);"> Beklædning -> Dametøj<br>
<input type='checkbox' name='levgr' value='10' onclick="checkCount(this, this.form);"> Beklædning -> Herretøj<br>
<input type='checkbox' name='levgr' value='12' onclick="checkCount(this, this.form);"> Beklædning -> Lingeri<br>
<input type='checkbox' name='levgr' value='13' onclick="checkCount(this, this.form);"> Beklædning -> Sko<br>
<input type="hidden" name="levgrbox" value="">
<input type="submit" value="test">
</form>


</body>
</html>
Avatar billede cyberdude Nybegynder
07. marts 2002 - 23:31 #7
lukke rher.. fandt en anden brugbar løsning, som kan ses her :
http://www.eksperten.dk/spm/182340
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