Avatar billede nightcoder Nybegynder
09. oktober 2008 - 12:47 Der er 9 kommentarer

Submit flere værdier

Kan man submitte flere værdier og samle dem i en streng eller et array?


f.eks.

<input type="checkbox" name="box1" value="1">
<input type="checkbox" name="box2" value="2">
<input type="checkbox" name="box3" value="3">

til 1,2,3
Avatar billede roenving Novice
09. oktober 2008 - 12:50 #1
Øeh, ja, hvis de er afkrydsede vil dit serverside script kunne aflæse dem ?-)
Avatar billede nightcoder Nybegynder
09. oktober 2008 - 12:58 #2
Men hvordan? :-)
Avatar billede michael_stim Ekspert
09. oktober 2008 - 13:00 #3
Hvilket sprog? ;o)
Avatar billede nightcoder Nybegynder
09. oktober 2008 - 13:08 #4
JavaScript :-)

Er ikke særlig sej til JS, men havde forestillet mig noget i retningen af en <input type="button" onClick="collect()"> og så noget

function collect()
    {   
        var varname = document.getElementById(\'boxes\').value;

Ved bare ikke hvordan man får flere values samlet. Der er også det at listen med inputs er dynamisk og kan varierer. Ved ikke lige hvordan man plejer at håndterer det i js.
Avatar billede roenving Novice
09. oktober 2008 - 13:23 #5
Hvor skal du bruge værdien ?-)
Avatar billede nightcoder Nybegynder
09. oktober 2008 - 13:28 #6
parametrene bliver returneret med JSON, så når jeg får værdien retur kan jeg splitte den som jeg lyster med php´en. Så en kommasepareret streng kan sagtens gå.
Avatar billede roenving Novice
09. oktober 2008 - 13:45 #7
-- og det kan du sagtens ...

<form>

<input type="checkbox" name="box1" value="1">
<input type="checkbox" name="box2" value="2">
<input type="checkbox" name="box3" value="3">

<input type="button" onClick="collect(this);return false;">
</form>

<script type="text/javascript">
var myBoxValues;
function collect(elm){
  var vals = [], f = elm.form;
  var elms = f.getElementsByTagName("input");
  for(var i = 0, im = elms.length; im > i; i++){
    if(elms[i].type == "checkbox" && elms[i].getAttribute("name").match(/^box/))
      vals.push(elms[i].getAttribute("value"));
  }
  myBoxValues  = vals.join(",");
}
</script>
Avatar billede nightcoder Nybegynder
10. oktober 2008 - 07:48 #8
Takker, men synes ikke rigtig jeg kan få den til at spille. Tager scriptet højde for om checkboxen er valgt, og skal scriptet placeres under formen?
Avatar billede roenving Novice
10. oktober 2008 - 08:31 #9
-- hvis det skal teste om feltet er valgt skal if-sætningen lige forlænges lidt:

...
  if(elms[i].type == "checkbox" && elms[i].getAttribute("name").match(/^box/) && elms[i].getAttribute("checked"))
...

-- scriptet kan placeres hvorsomhelst indenfor head- eller body-tagget eller kn placeres i en ekstern fil !-)
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