Her er en stump kode. Spørgsmålet er hvordan man får det til at køre med POST og ikke GET.
<form action="votes.cgi" method="GET"> <script LANGUAGE="JavaScript"> <!-- Begin function move(list,to) { var index = list.selectedIndex; var total = list.options.length-1; if (index == -1) return false; if (to == +1 && index == total) return false; if (to == -1 && index == 0) return false; var item=list.options[index].text; var value=list.options[index].value; list.options[index] = new Option(list.options[index+to].text,list.options[index+to].value); list.options[index+to] = new Option(item,value); list.selectedIndex=index+to; list.focus(); } function submitvotes(form) {
var args= "?"; for (i = 0; i < form.votes.options.length; i++) { args += "votes[]" + "=" + form.votes.options[i].value; if (i != form.votes.options.length-1) args += "&"; } document.location = form.action + args; } //End --> </script>
<form name="voteform" action="votes.cgi" method="POST"> <script LANGUAGE="JavaScript"> <!-- Begin function move(list,to) { var index = list.selectedIndex; var total = list.options.length-1; if (index == -1) return false; if (to == +1 && index == total) return false; if (to == -1 && index == 0) return false; var item=list.options[index].text; var value=list.options[index].value; list.options[index] = new Option(list.options[index+to].text,list.options[index+to].value); list.options[index+to] = new Option(item,value); list.selectedIndex=index+to; list.focus(); } function submitvotes(form) {
var args= "?"; for (i = 0; i < form.votes.options.length; i++) { args += "votes[]" + "=" + form.votes.options[i].value; if (i != form.votes.options.length-1) args += "&"; } // document.location = form.action + args; document.voteform.submit(); } //End --> </script>
Jeg har lige kigget lidt på det, men har en aftale nu. Kigger videre om et par timer.
Hvor mange muligheder skal der være at vælge imellem, og hvor kommer de fra? En mulighed kunne være at lægge værdierne i et tilsvarende antal hidden fields.
Jeg har kaldt din form for voteform og submitter den i funktionen submitvotes. Den funktion skal så evt. lige skrives om til at lægge værdierne i hidden fields i stedet for at bygge en querystring.
Synes godt om
Slettet bruger
31. december 2002 - 11:46#4
Hvis du får informationerne ind i rækkefølge i en kommasepareret liste, vil det så være i orden? Fx:
Hvis du poster dit forslag kan jeg jo se om det virker, Hvis det gør det er det jo iorden.
Men hvis du kan send option 1, option 3, option 2 via post methoden skulle det vel ikke være svært at send værdierne istedet for ??
Knud
Synes godt om
Slettet bruger
01. januar 2003 - 18:27#6
Jo, for så skal der oprettes et antal hidden-felter, som så skal udfyldes og sendes. Og det virker ikke i NS4.
Omvendt kan man sige, at det ikke kan være så svært at skille en kommasepareret streng, så den bliver til et array! I PHP hedder metoden explode og i JavaScript split.
ok, men hvordan sender du en kommasepareret streng via post ??
Synes godt om
Slettet bruger
02. januar 2003 - 13:47#8
Det er heldigvis enkelt nok:
function submitvotes(form) { arr = new Array(); for (i = 0; i < form.votes.options.length; i++) arr[i] = form.votes.options[i].value; document.submitForm.hiddenFelt.value = arr.join(","); document.submitForm.submit(); }
Og så indsætter du denne kode nederst på din side:
Nu er det så i virkeligheden slet ikke formen med selectboksen i, der bliver sendt, men i stedet den skjulte form.
Synes godt om
Ny brugerNybegynder
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.