31. oktober 2005 - 14:07Der er
8 kommentarer og 1 løsning
Sortering af punkter til kommasep. streng
Jeg har fundet nedenstående script her på E på et tidspunkt, så det er ikke noget jeg selv har lavet.
Jeg ville gerne hvis det kunne laves således, at når man har sorteret de enkelte punkter, så bliver der sendt en kommasepareret streng med den nye rækkefølge.
Denne streng vil jeg så bruge i ASP til at ændre en sorteringsrækkefølge, men hvordan får jeg lavet denne kommaseparerede streng ?!?
<script type="text/javascript"> function move(elm,dir){ if(typeof elm == 'string'); elm = document.getElementById(elm); var num = elm.selectedIndex; if(num == -1){ alert('No selection'); return; } if(dir=='up' && num==0 || dir=='down' && num==(elm.length-1))return; if(dir=='add'){ var txt = prompt('Text for the option','Text'); var val = prompt('Value for the option','Value'); if(txt == "" && val == "" || txt == 'Text' && val == 'Value'){ alert('You must supply at least a value or a text !-)'); return; } if(txt == "" || txt == 'Text') txt = val; if(val == "" || val == 'Value') val = txt; var opt = new Option(txt,val); elm.insertBefore(opt,elm.options[num]); opt.text = txt; return; } var opt = elm.removeChild(elm.options[num]); if(dir=='remove')return; if(dir=='up') elm.insertBefore(opt,elm.options[num-1]); else elm.insertBefore(opt,elm.options[num+1]); } </script>
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
function validate( f ){ var data = ""; for (var i = 0; i < f.valgSelect.options.length; i++){ data += f.valgSelect.options[i].value + ","; } alert(data); } </script>
<form method="post" action="resultat.asp" name="form" onsubmit="return validate( this )";>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head> <title>Untitled</title> </head>
<body> <script type="text/javascript"> function move(elm,dir){ if(typeof elm == 'string'); elm = document.getElementById(elm); var num = elm.selectedIndex; if(num == -1){ alert('No selection'); return; } if(dir=='up' && num==0 || dir=='down' && num==(elm.length-1))return; if(dir=='add'){ var txt = prompt('Text for the option','Text'); var val = prompt('Value for the option','Value'); if(txt == "" && val == "" || txt == 'Text' && val == 'Value'){ alert('You must supply at least a value or a text !-)'); return; } if(txt == "" || txt == 'Text') txt = val; if(val == "" || val == 'Value') val = txt; var opt = new Option(txt,val); elm.insertBefore(opt,elm.options[num]); opt.text = txt; return; } var opt = elm.removeChild(elm.options[num]); if(dir=='remove')return; if(dir=='up') elm.insertBefore(opt,elm.options[num-1]); else elm.insertBefore(opt,elm.options[num+1]); }
function validate( f ){ var data = ""; for (var i = 0; i < f.valgSelect.options.length; i++){ data += f.valgSelect.options[i].value + ","; } alert(data); } </script>
Jeg ved ikke om det er mig der ikke forstår at udtrykke mig ;o), men jeg ønsker ikke at få den alert boks at se, blot at få sendt strengen til en ny side ?
Du skal som sådan "bare" selecte alle elementer i listen, inden din form bliver submitted, for så ligger værdierne i request.form("valg") når du kommer over på serveren. Således:
<script type="text/javascript"> function move(elm,dir){ if(typeof elm == 'string'); elm = document.getElementById(elm); var num = elm.selectedIndex; if(num == -1){ alert('No selection'); return; } if(dir=='up' && num==0 || dir=='down' && num==(elm.length-1))return; if(dir=='add'){ var txt = prompt('Text for the option','Text'); var val = prompt('Value for the option','Value'); if(txt == "" && val == "" || txt == 'Text' && val == 'Value'){ alert('You must supply at least a value or a text !-)'); return; } if(txt == "" || txt == 'Text') txt = val; if(val == "" || val == 'Value') val = txt; var opt = new Option(txt,val); elm.insertBefore(opt,elm.options[num]); opt.text = txt; return; } var opt = elm.removeChild(elm.options[num]); if(dir=='remove')return; if(dir=='up') elm.insertBefore(opt,elm.options[num-1]); else elm.insertBefore(opt,elm.options[num+1]); } function selectAll(frm) { for(var i=0; i < frm.valg.options.length; i++) frm.valg.options[i].selected = true; } </script>
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.