Avatar billede jademutter Nybegynder
15. februar 2007 - 21:01 Der er 16 kommentarer og
1 løsning

få ALLE værdier fra en listbox?

Hej Alle

Jeg har en alm. listbox i en form, og når brugeren submitter denne form skal ALLE værdierne fra listboxen sendes ttil serveren.

Mit problem er at den kun vil overfører de værdier som jeg har markeret...

Hvordan laves dette?

/Jademutter
Avatar billede arne_v Ekspert
15. februar 2007 - 21:05 #1
det kan du ikke - det er HTML standardem, HTTP standarden og browseren som
styrer det - ikke din kode

lav et hidden field med samme info
Avatar billede jademutter Nybegynder
15. februar 2007 - 21:07 #2
hvad mener du?
Avatar billede kalp Novice
16. februar 2007 - 02:06 #3
han mener du skal lave et par stykker af disse


<input name="skjult" id="skjult" type="hidden" value="et eller andet fra listboxen">
<input name="skjult" id="skjult" type="hidden" value="et eller andet fra listboxen">
<input name="skjult" id="skjult" type="hidden" value="et eller andet fra listboxen">
<input name="skjult" id="skjult" type="hidden" value="et eller andet fra listboxen">


du kan så lave en request på id'et helt normalt.

hvis du ikke er interesseret i den løsning så kan du jo tvinge alle sammen til at være checked! så kommer de med over!
Avatar billede arne_v Ekspert
16. februar 2007 - 04:37 #4
jeg er ikke glad for de ens id'er

men noget i den stil

evt. et enkelt hidden field med en komma separeret liste
Avatar billede arne_v Ekspert
16. februar 2007 - 04:38 #5
men jeg tvivler på at ideen er god

hvis listen er konstant må den jo kunne hardcodes

hvis listen ikke er konstant, så kunne den samme kode som genererede den vel
gemme data i session
Avatar billede kalp Novice
16. februar 2007 - 09:11 #6
Jeg har ikke testet men tror godt jeg kan tvinge alt i listen til at være markeret, men så ryger ideen med sådan en liste vel også:)
Avatar billede jademutter Nybegynder
16. februar 2007 - 12:49 #7
hmm.....
Meningen er at jeg vil lave 2 lister, én med muligheder og én med valgte (ligesom når man søger på stepstone). Det er intet problem og lave listerne og fylde den med mulighederne, men når brugeren har valgt nogle værdier og submitter formen, bliver disse ikke sendt med.

Jeg kan ikke lige se, hvordan dette skal kunne lade sig gøre, ved at lave hidden fields?!?

/Jademutter
Avatar billede kalp Novice
16. februar 2007 - 12:51 #8
Hvis problemet er, at de værdier, som man vælger i dine lister ikke kommer med over så vil jeg da anbefale dig, at du viser os noget kode for så laver du noget forkert!
Avatar billede jademutter Nybegynder
16. februar 2007 - 13:00 #9
jeg har ikke min kode, før engang i aften, men her er det eksempel jeg har brugt.
http://javascript.internet.com/forms/form-swapper-2.html
problemet er at det ikke er nok at de står i den højre listbox, de skal også være markeret (blå) for at komme med i min request.
Når de er markeret fungere det rigtigt nok med form.jsp?landsdel="fyn"&landsdel="sjælland" osv...
Avatar billede kalp Novice
16. februar 2007 - 13:00 #10
hvis de kommer med over skal du selvfølgelig requeste dem alle.. nu kan jeg ikke helst huske om metoden hedder dette, men mener det.

String[] list = request.getParameterValues("dinList");
Avatar billede jademutter Nybegynder
16. februar 2007 - 13:03 #11
ja det er også den jeg har brugt, men det kræver at de er markeret før de kommer med i listen. Hvis de ikke er markeret er "dinList" tom!
Avatar billede kalp Novice
16. februar 2007 - 13:20 #12
hmm.. tror faktisk bare du skal ændre action i din form til post..

altså "action="post" "
den er sikkert get
Avatar billede jademutter Nybegynder
16. februar 2007 - 13:23 #13
Ja på nuværende tidspunkt er den GET, men det er kun så jeg kan se hvad der sendes i request. Hvilken forskel skulle det gi at ændre det til POST?
Avatar billede kalp Novice
16. februar 2007 - 13:26 #14
ja det ved jeg ikke:)

men du kan rette lidt til i din kode så virker det..

for(c = 0; c < arrTbox.length; c++) {
var no = new Option();
no.value = arrLookup[arrTbox[c]];
no.text = arrTbox[c];
no.selected = "selected";
tbox[c] = no;


tilføjede bare
no.selected = "selected";
Avatar billede kalp Novice
16. februar 2007 - 13:39 #15
Copy & Paste dette eksempel her..
Nu er du 100% på at få dem med over:)
legede lidt med det.



<!-- TWO STEPS TO INSTALL MENU SWAPPER:

  1.  Copy the coding into the HEAD of your HTML document
  2.  Add the last code into the BODY of your HTML document  -->

<!-- STEP ONE: Paste this code into the HEAD of your HTML document  -->

<HEAD>
<script type="text/javascript">
function setMarks(tbox) {
for(i = 0; i < tbox.options.length; i++) {
tbox.options[i].selected = "Selected";

}
}
</script>


<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Phil Webb (phil@philwebb.com) -->
<!-- Web Site:  http://www.philwebb.com -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function move(fbox, tbox) {
var arrFbox = new Array();
var arrTbox = new Array();
var arrLookup = new Array();
var i;
for (i = 0; i < tbox.options.length; i++) {
arrLookup[tbox.options[i].text] = tbox.options[i].value;
arrTbox[i] = tbox.options[i].text;
}
var fLength = 0;
var tLength = arrTbox.length;
for(i = 0; i < fbox.options.length; i++) {
arrLookup[fbox.options[i].text] = fbox.options[i].value;
if (fbox.options[i].selected && fbox.options[i].value != "") {
arrTbox[tLength] = fbox.options[i].text;
tLength++;
}
else {
arrFbox[fLength] = fbox.options[i].text;
fLength++;
  }
}
arrFbox.sort();
arrTbox.sort();
fbox.length = 0;
tbox.length = 0;
var c;
for(c = 0; c < arrFbox.length; c++) {
var no = new Option();
no.value = arrLookup[arrFbox[c]];
no.text = arrFbox[c];
fbox[c] = no;
}
for(c = 0; c < arrTbox.length; c++) {
var no = new Option();
no.value = arrLookup[arrTbox[c]];
no.text = arrTbox[c];
no.selected = "selected";
tbox[c] = no;
  }
}
//  End -->
</script>

</HEAD>

<!-- STEP TWO: Copy this code into the BODY of your HTML document  -->

<BODY>

<form name="combo_box">
<table><tr><td>
<select multiple size="10" name="list1" style="width:150">
<option value="12">Alabama</option>
<option value="54">Alaska</option>
<option value="65">Arizona</option>
<option value="45">Arkansas</option>
<option value="2">California</option>
<option value="6">Colorado</option>
<option value="81">Connecticut</option>
<option value="5">Delaware</option>
<option value="23">District of Columbia</option>
<option value="58">Florida</option>
<option value="87">Georgia</option>
<option value="98">Hawaii</option>
<option value="53">Idaho</option>
<option value="22">Illinois</option>
<option value="28">Indiana</option>
<option value="89">Iowa</option>
<option value="71">Kansas</option>
<option value="35">Kentucky</option>
<option value="85">Louisiana</option>
<option value="9">Maine</option>
<option value="7">Maryland</option>
<option value="77">Massachusetts</option>
<option value="36">Michigan</option>
<option value="87">Minnesota</option>
<option value="66">Mississippi</option>
<option value="34">Missouri</option>
<option value="50">Montana</option>
<option value="20">Nebraska</option>
<option value="25">Nevada</option>
<option value="32">New Hampshire</option>
<option value="27">New Jersey</option>
<option value="74">New Mexico</option>
<option value="17">New York</option>
<option value="3">North Carolina</option>
<option value="13">North Dakota</option>
<option value="4">Ohio</option>
<option value="21">Oklahoma</option>
<option value="12">Oregon</option>
<option value="48">Pennsylvania</option>
<option value="63">Rhode Island</option>
<option value="82">South Carolina</option>
<option value="14">South Dakota</option>
<option value="72">Tennessee</option>
<option value="49">Texas</option>
<option value="47">Utah</option>
<option value="92">Vermont</option>
<option value="59">Virginia</option>
<option value="52">Washington</option>
<option value="41">West Virginia</option>
<option value="46">Wisconsin</option>
<option value="95">Wyoming</option>
</select>
</td>
<td align="center" valign="middle">
<input type="button" onClick="move(this.form.list2,this.form.list1)" value="<<">
<input type="button" onClick="move(this.form.list1,this.form.list2)" value=">>">
</td>
<td>
<select multiple size="10" id="listto" name="list2"  onChange="setMarks(this.form.list2);" style="width:150">
</select>
</td></tr></table>
</form>

<p><center>
<font face="arial, helvetica" size"-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

<!-- Script Size:  4.75 KB -->
Avatar billede jademutter Nybegynder
19. februar 2007 - 10:40 #16
Det var lige hvad der skulle til.... det er ikke kønt (de er jo hele tiden blå), men det virker...

Takker

over and out...
Avatar billede kalp Novice
19. februar 2007 - 11:40 #17
ja det beklager jeg, men det er hvad min erfaring rækker til (soo far)
:)
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
Kurser inden for grundlæggende programmering

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