Avatar billede rasmus-madsen Nybegynder
26. marts 2005 - 17:51 Der er 19 kommentarer og
1 løsning

Ret tal i select boks.

Hej allesammen.

Har nogen select bokse, hvor der kan vælges et tal fra et til x. (x er forskelligt fra side til side. Dog er tallet ens pr side. Eks side 1 har 4, side 2 har 7.).

Nu er der så 4 billeder. Der har hver en select boks foran sig. [] = Betyder en boks. Tallet inden i er den nuværende værdi.

[1] billede 1
[2] billede 2
[3] billede 3
[4] billede 4


Nu vil jeg gerne have lavet lidt gejl.
Hvis man ved billede 4 vælger nummer 2 i boksen skal de andre bokse ændre sig. Nærmest gøre plad til den nye værdi.

Så det kommer til at se sådan ud:

[1] billede 1
[3] billede 2
[4] billede 3
[2] billede 4


Forstår i hvad jeg mener ?
Altså billede 4 fik nu tallet 2 og rykkede de andre et tak ned.

På forhånd tak.
Rasmus Madsen
Avatar billede barklund Nybegynder
26. marts 2005 - 18:44 #1
Altså du har fire bokse, hvori der kan vælges fra 1 til n - og hvis man vælger det samme som en af de andre, så skal de flytte sig? Eller har du n boske hvor man kan vælge fra 1 til n?
Avatar billede rasmus-madsen Nybegynder
26. marts 2005 - 19:06 #2
Hej. Det første.
hvori der kan vælges fra 1 til n - og hvis man vælger det samme som en af de andre, så skal de andre flytte sig.
Avatar billede barklund Nybegynder
26. marts 2005 - 19:26 #3
Men der er altid 4 bokse?
Avatar billede rasmus-madsen Nybegynder
26. marts 2005 - 19:37 #4
Nej det er der ikke.

Hvis der er n bokse er der også tallene fra 1 til n.

Altså hvis der er 5 bokse skal der være tallene fra 1 til 5.
Avatar billede barklund Nybegynder
26. marts 2005 - 20:20 #5
Det var jo det, jeg spurgte om :)

Men ja, det kan godt laves. Jeg kigger lige på det ved lejlighed :)
Avatar billede rasmus-madsen Nybegynder
26. marts 2005 - 20:30 #6
Super :D
Avatar billede barklund Nybegynder
26. marts 2005 - 21:20 #7
Hm, det må være noget med:

<html>
<head>
<script type="text/javascript">
var num = 5;
var num2id = new Array();
num2id[1] = 1;
num2id[2] = 2;
num2id[3] = 3;
num2id[4] = 4;
num2id[5] = 5;
var id2num = new Array();
id2num[1] = 1;
id2num[2] = 2;
id2num[3] = 3;
id2num[4] = 4;
id2num[5] = 5;
function updateSelect(s) {
    var oldids = num2id.slice();
    var id = s.id.substring(3);
    var n = Number(s[s.selectedIndex].value);
    var pn = Number(id2num[id]);
    var sign = n > pn ? -1 : 1;
    for (var i = n; sign*i < sign*pn; i+=sign) {
        id2num[oldids[i]] = i+sign;
        num2id[i+sign] = oldids[i];
        document.getElementById("val"+oldids[i]).options[i-1+sign].selected = true;
    }
    num2id[n] = id;
    id2num[id] = n;
}
</script>
<body>
<div>
  Valg 1:
  <select id="val1" name="val1" onchange="updateSelect(this)">
      <option value="1" selected>1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
  </select>
</div>
<div>
  Valg 2:
  <select id="val2" name="val2" onchange="updateSelect(this)">
      <option value="1">1</option>
      <option value="2" selected>2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
  </select>
</div>
<div>
  Valg 3:
  <select id="val3" name="val3" onchange="updateSelect(this)">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3" selected>3</option>
      <option value="4">4</option>
      <option value="5">5</option>
  </select>
</div>
<div>
  Valg 4:
  <select id="val4" name="val4" onchange="updateSelect(this)">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4" selected>4</option>
      <option value="5">5</option>
  </select>
</div>
<div>
  Valg 5:
  <select id="val5" name="val5" onchange="updateSelect(this)">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5" selected>5</option>
  </select>
</div>
</body>
</html>

Virker det som forventet?

--
Morten Barklund
Avatar billede rasmus-madsen Nybegynder
27. marts 2005 - 14:30 #8
Det er perfekt.

Jeg har et lille bonus spm som udløser 50 points mere :D ..
Det kun hvis du vil.

Her har vi foreksempel en div:
<div>
  Valg 5:
  <select id="val5" name="val5" onchange="updateSelect(this)">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5" selected>5</option>
  </select>
TEKST 5.
</div>

Hvis så den bliver valgt til 3 skal HELE div´en rykke op til plads 3.

Forstår du ?
Avatar billede barklund Nybegynder
27. marts 2005 - 21:44 #9
Så ville det da være meget nemmere bare at flytte teksterne rundt - hvis formålet blot er at angive rækkefølgen for x tekster?
Avatar billede rasmus-madsen Nybegynder
28. marts 2005 - 01:51 #10
Nej sådan skal det ikke være.

Det skal være hele div'en.
Avatar billede barklund Nybegynder
28. marts 2005 - 11:25 #11
Hvorfor? Jeg tror jeg hellere må forstå, hvad du forsøger at lave først - for umiddelbart virker det andet meget nemmere :)
Avatar billede rasmus-madsen Nybegynder
28. marts 2005 - 12:29 #12
Har tænkt over hvad du sagde og det kan være du har ret.

Det kommer en tabel udfra hver select boks.
Somm indeholder lidt tekst samt et billede.

Kan man flytte hele tabel så. Samt ændre navnet på boksen som er udfra billedet ?
Avatar billede barklund Nybegynder
28. marts 2005 - 13:07 #13
Hvis indholdet ud for hver af dem fast er et billede og en tekst, så er det bare at gemme stien til billederne og teksterne i et array i javascript og flytte det rundt. Det er højst sandsynligt det nemmeste.
Avatar billede rasmus-madsen Nybegynder
28. marts 2005 - 14:11 #14
Ja det kunne være smart.
Men det er vigtigt at boksen udfra teksten samt billedet har det rigtige navn.

altså den føreste boks "1" har samme navn som select boksen. Altså "1". Så det kan gemmes.

Er det noget du kan lave ?
Avatar billede barklund Nybegynder
28. marts 2005 - 14:23 #15
Kom med et lidt mere udførligt eksempel - for eksempel html kilden for, hvordan det skal se ud. Så er det lidt nemmere for mig at lave - og så skal jeg ikke lave det om én gang til :)
Avatar billede rasmus-madsen Nybegynder
28. marts 2005 - 18:35 #16
hehe det skal jeg gøre.
Men skal lige spise først.
Så laver jeg det. :D
Avatar billede rasmus-madsen Nybegynder
28. marts 2005 - 19:11 #17
Sådan skal tabelen se ud.:


<table width="75%" border="1">
  <tr>
    <td width="34%" rowspan="2" align="center" valign="middle"><img src="sonic.jpg" width="182" height="139"></td>
    <td width="66%" height="70" valign="top">Navn : tekst<br>
      Sti : Tekst<br>
      Dato / klokke : Tekst</td>
  </tr>
  <tr>
    <td valign="top">Til : [Inputfelt]<br>
      Fremmetid : [Inputfelt]<br>
      Aktivt : [selectboks]<br>
      Placering : [selectboksen med tal]</td>
  </tr>
</table>

Evt gem den som html, for at få et bedre overblik.
Avatar billede rasmus-madsen Nybegynder
29. marts 2005 - 18:24 #18
Er du der ?

Ellers svar, så skal jeg oprette et nyt med den nye del.
Avatar billede barklund Nybegynder
29. marts 2005 - 18:28 #19
Mjaa, men jeg kunne ikke lige overskue at lave det, da jeg kiggede på det :)

Jeg kaster et svar :)
Avatar billede barklund Nybegynder
29. marts 2005 - 20:16 #20
Tark for points - håber du får det løst :)
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