Avatar billede nitram30 Nybegynder
22. januar 2004 - 18:03 Der er 53 kommentarer og
1 løsning

Lille simpelt regneprg.

Jeg skal bruge et lille simpelt regneprg.

Det skal være sådan at når en bruger taster et tal ind i et "textfield" i en form at man så får et svar som måske siger tallet X (som man har indtastet) er for højt, lavt eller OK.
Tallet skal ligge mellem 0-10.

Måske skal det lille prg udvides til at kunne klare hele 3 forskellige indtastninger. Og derefter 3 svar..
Men det vender jeg straks tilbage med. For det skulle være en simpel kopi af linierne i det første prg. :-)

Håber på lidt hurtig hjælp.

---
Mvh
Martin
Avatar billede grunken Nybegynder
22. januar 2004 - 18:24 #1
sådan ?

<input type="text" onchange="if(this.value>10 || this.value<0 || this.value.typeOf!='number'){alert('Tal mellem 1-10 skal indtastes');this.value='';}"/>
Avatar billede grunken Nybegynder
22. januar 2004 - 18:24 #2
nopes, jeg lærer lige at læse ordentligt ;)
Avatar billede o-zone Nybegynder
23. januar 2004 - 22:06 #3
grunken>> hmmm ... Jeg skal vist også til at lære at læse - hvad var der i vejen med din løsning? :@(
Avatar billede roenving Novice
24. januar 2004 - 21:07 #4
<script type="text/javascript">
var tal = 7;
function getCharCode(e){
return (e.which)?e.which:e.keyCode;
}
function checkInput(fld,val){
  talkode = tal + 48;
  if(val<48||val>57){
    alert("Du skal skrive et tal !-)")
  }else{
    val = +val;
    if(val>talkode)alert("Tallet er for stort !-)");
    if(val==talkode)alert("Tallet er helt rigtigt !-)");
    if(val<talkode)alert("Tallet er for lille !-)");
  }
  fld.focus();
}
</script>

<form>
<input type="text" onkeyup="checkInput(this,getCharCode(event))">

</form>
Avatar billede nitram30 Nybegynder
24. januar 2004 - 21:43 #5
Hej Roenving!

Det virker jo. :-)

Meen der er noget jeg gerne vil have anderledes. :-)

1. Det skal være sådan at jeg selv fatter at rette i det. Altså et eller andet med at jeg kan se at ved den talværdi skal den svare det. Mere hvis jeg pludselig skal ændre eksemplet til at kunne give 5 forskellige svar alt afhænigt af indtastning. :-)

2. En anden ting der virker lidt irreterende er at det er den der "pop-up" svar løsning. Kan man ikke give svaret på en ny html side? :-)

Mvh
Martin
Avatar billede nitram30 Nybegynder
24. januar 2004 - 21:47 #6
Nåå ja, kom lige til at tænke på en ting mere. :-)
Det virker ikke hvis jeg bruger tallene ved (num lock)
Avatar billede roenving Novice
24. januar 2004 - 22:26 #7
I princippet kan man sagtens lave en ny side og skrive det ind i den, men det lyder som overkill !-)

-- og det var selvfølgelig også som eksempel, jeg bare lavede alerts ...

Her har jeg en version, som også virker med tal-tastaturet:

<script type="text/javascript">
var tal = 7;
function getCharCode(e){
return (e.which)?e.which:e.keyCode;
}
function checkInput(fld,val){
  talkode = tal + ((val<106&&val>95)?96:48);
  alert(val+" "+talkode);
  if(val<48||val>105||(val<96&&val>57)){
    alert("Du skal skrive et tal !-)")
  }else{
    if(val>talkode)alert("Tallet er for stort !-)");
    if(val==talkode)alert("Tallet er helt rigtigt !-)");
    if(val<talkode)alert("Tallet er for lille !-)");
  }
  fld.focus();
}
</script>

<form>
<input type="text" onkeyup="checkInput(this,getCharCode(event))">

</form>

-- øverst ligger linjen var tal = 7; den kan du ændre til det tal, du vil bruge ...

-- og hvis du vil teste for flere tal kan du gøre sådan:

<script type="text/javascript">
var tal1 = 3;
var tal2 = 5;
var tal3 = 6;
var tal4 = 7;
var tal5 = 9;
function getCharCode(e){
return (e.which)?e.which:e.keyCode;
}
function checkInput(fld,val){
  talkode1 = tal1 + ((val<106&&val>95)?96:48);
  talkode2 = tal2 + ((val<106&&val>95)?96:48);
  talkode3 = tal3 + ((val<106&&val>95)?96:48);
  talkode4 = tal4 + ((val<106&&val>95)?96:48);
  talkode5 = tal5 + ((val<106&&val>95)?96:48);
  alert(talkode1+" "+talkode2+" "+talkode3+" "+talkode4+" "+talkode5+" "+val);
  if(val<48||val>105||(val<96&&val>57)){
    alert("Du skal skrive et tal !-)")
  }else{
    if(val<talkode1)alert("Tallet er meget for lille !-)");
    else if(val>talkode5)alert("Tallet er meget for stort !-)");
    else if(val<=talkode2)alert("Tallet er for lille !-)");
    else if(val>=talkode4)alert("Tallet er for stort !-)");
    else if(val==talkode3)alert("Tallet er helt rigtigt !-)");
  }
  fld.focus();
}
</script>

<form>
<input type="text" onkeyup="checkInput(this,getCharCode(event))">

</form>

-- det er bare ekstremt svært at sætte det rigtigt op !-)

-- og så håber jeg, du har fået nogle ideer !o]

Så velbekomme '-)

PS: At åbne et nyt vindue med beskeden er ca. sådan:

newWin = window.open("","newWin","height=150,width=200,status=no");
txt = dinResultatText;
newWin.document.write(txt);
newWin.document.close();

-- derudover kommer så en evt. html-formattering, som jo også skal lægges ind i txt-variablen !-)
Avatar billede nitram30 Nybegynder
24. januar 2004 - 22:49 #8
Skal have lidt mere hjælp, da der vidst er fejl i eksemplet. :-)

Det er underordnet hvordan det er sat op da siden til dette indhold ikke er lavet endnu. Så jeg er åben for alle ideer.

Forstår ikke princippet i de sidste 2 ting du skriver.:

newWin =
og txt-variabel??

Er villig til at spytte dobbelt så mange point eller mere for en lille færdig løsning uden alert.

Faktisk skal jeg bruger det til noget akvarie hobby hvor man kan teste nogle vandværdier. Det var det der var min ide.
Avatar billede nitram30 Nybegynder
24. januar 2004 - 22:51 #9
Har lige hævet med 30 point mere. :-)
Avatar billede roenving Novice
24. januar 2004 - 23:00 #10
Hvad skal du så prøve ?-)

-- nu nævnte du at tallene ville være under 10, så udgangspunktet er taget i sådan en sammenligning ...

-- men hvis jeg selv skulle hav brug for noget akvarie-noget med vandværdier, ville det være nødvendigt at have fler-cifrede tal !-)

pH-værdier er f.eks. i min klub relevante at teste mellem ca. 6 og ca. 10½, vores bruttohårdhed i vandværksvandet ligger på 22-23 mv.

-- det jeg kunne forestille mig var, at du havde en stribe forudlavede sider med relevant info, som du så åbnede:

if(hardhed>25)window.open("ekstremtHardt.html","newWin","height=300,width=400,status=no");
else if(hardhed>18&&hardhed<=25)window.open("megetHardt.html","newWin","height=300,width=400,status=no");
else if(hardhed>12&&hardhed<=18)window.open("hardt.html","newWin","height=300,width=400,status=no");
else if(hardhed>6&&hardhed<=12)window.open("normal.html","newWin","height=300,width=400,status=no");
else if(hardhed>3&&hardhed<=6)window.open("blodt.html","newWin","height=300,width=400,status=no");
Avatar billede roenving Novice
24. januar 2004 - 23:02 #11
-- og så ville onchange være et bedre sted at starte end onkeyup !-)
Avatar billede nitram30 Nybegynder
24. januar 2004 - 23:18 #12
Fatter ikke en pind. :-)

<script type="text/javascript">

if(hardhed>25)window.open("ekstremtHardt.html","newWin","height=300,width=400,status=no");
else if(hardhed>18&&hardhed<=25)window.open("megetHardt.html","newWin","height=300,width=400,status=no");
else if(hardhed>12&&hardhed<=18)window.open("hardt.html","newWin","height=300,width=400,status=no");
else if(hardhed>6&&hardhed<=12)window.open("normal.html","newWin","height=300,width=400,status=no");
else if(hardhed>3&&hardhed<=6)window.open("blodt.html","newWin","height=300,width=400,status=no");

</script>

<form>
<input type="text" onchange="checkInput(this,getCharCode(event))">

</form>
Avatar billede roenving Novice
24. januar 2004 - 23:46 #13
*g*

Jeg lavede ikke lige et nyt script, men gav bare et eksempel, så din forvirring er forståelig !-)

Men hvis jeg skulle reagere på, at folk indtastede f.eks. en hårdhedsgrad i et felt, ville jeg have 3-5 sider med info om mulige problemer og fordele ved den slags hårdhed ...

F.eks. at det vil være meget svært at opdrætte fisk fra sortvandsfloder, når hårdheden er over 3 dgh ...

-- eller at det vil være umuligt at få piranhaer til at yngle ved en pH-værdi på over ca. 6,3 !-)

-- så ideen i feltet bør være, at der skrives, og så aktiverer brygeren selv en check-mekanisme f.eks. vha. en knap:

<form>
Hårdhed (dgh): <input type="text" name="hardhed"><br>
pH-værdi: <input type="text" name="ph"><br>
<input type="button" value="Vis info om vandværdier" onclick="visInfo(this.form)">
</form>

-- og så et script, som aflæser værdier:

function visInfo(f){
  reg = /\,/g;
  hardhed = +f.hardhed.value.replace(reg, ".");
  ph = +f.ph.value.replace(reg, ".");
  if(hardhed>25)window.open("ekstremtHardt.html","newWin","height=300,width=400,status=no");
  else if(hardhed>18&&hardhed<=25)window.open("megetHardt.html","newWin","height=300,width=400,status=no");
  else if(hardhed>12&&hardhed<=18)window.open("hardt.html","newWin","height=300,width=400,status=no");
  else if(hardhed>6&&hardhed<=12)window.open("normal.html","newWin","height=300,width=400,status=no");
  else if(hardhed>3&&hardhed<=6)window.open("blodt.html","newWin","height=300,width=400,status=no");
}
Avatar billede nitram30 Nybegynder
25. januar 2004 - 01:04 #14
Fedt...
Ja lige akurat noget i den stil. :-)
Vender liget tilbage i morgen igen..

---
Mvh
Martin
Avatar billede nitram30 Nybegynder
25. januar 2004 - 12:21 #15
Hej igen...

Det er jo bare alletiders det du har fået lavet. :-)

Har tænkt på noget...

Hvordan får jeg prg til at svare hvis nogen er så tåbelige og taste fra 0-3?

En anden ting jeg også lige tænkte på. Hvordan skal prg reagere hvis man både indtaster en vandhårdhed og en pH-værdi?

Havde tænkt på at det ville jo være genialt hvis man havde mulighed for at taste enkelte men også alle værdier, og prg skal svare ud fra det? Hvordan gør man lige det?

---
Mvh
Martin
Avatar billede roenving Novice
25. januar 2004 - 13:44 #16
Fejlindtastninger må du si fra (validere !-) og så nægte at modtage det ...

Laver en side, som er dynamisk ...

Det er jo nemmest med et server-side scripting-sprog som php eller asp, men kan også laves i (d)html, altså en kombination af html, javascript og css.

Hvis du nu laver eet langt dokument, med alle forskelllige oplysninger i hver sin layer, som så alle sættes til at være skjulte fra start, og så gør sådan noget som:

I indtastningsdokumentet:

<form action="resultatside.html" method="get" onsubmit="return valider(this);">
Temperatur: <input type="text" name="temperatur">
pH: <input type="text" name="ph">
Total hårdhed: <input type="text" name="thard">
Kalhårdhed: <input type="text" name="khard">
</form>

<script type="text/javascript">
function valider(f){
  var t = parseInt(f.temperatur.value,10);
  if(t=='NaN'||t>50||t<0){
    alert('Du har angivet en ugyldig temperatur\nKun relevante temperaturer mellem 0° og 50° accepteres');
    f.temperatur.select();
    f.temperatur.focus();
    return false;
  }
  t = parseInt(f.ph.value,10);
  if(t=='NaN'||t>14||t<0){
    alert('Du har angivet en ugyldig pH-værdi\nKun værdier mellem 0 og 14 accepteres');
    f.ph.select();
    f.ph.focus();
    return false;
  }
  t = parseInt(f.thard.value,10);
  if(t=='NaN'||t>30||t<0){
    alert('Du har angivet en ugyldig Totalhårdhed\nKun relevante værdier mellem 0 og 30 accepteres');
    f.thard.select();
    f.thard.focus();
    return false;
  }
  t = parseInt(f.khard.value,10);
  if(t=='NaN'||t>50||t<0){
    alert('Du har angivet en ugyldig Kalkhårdhed\nKun relevante værdier mellem 0 og 30 accepteres');
    f.khard.select();
    f.khard.focus();
    return false;
  }
  return true;
}
</script>

Det skulle afsende en url på formen: resultatside.html?temperatur=26&ph=8.3&thard=13&khard=9

Den kan du så tage fat i i resultatsiden onload:

<script type="text/javascript">
function visDivs(){
var s = location.search;
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      var t = parseInt(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      var t = parseInt(s[i][1],10),d;
      if(t>=11)d=5;
//osv. med alle muligheder
  }
}
}
</script>

<body onload="visDivs()">

<div id="tempDiv1" style="display:none;">
Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>

osv. med alle de afsnit, du skal bruge
Avatar billede nitram30 Nybegynder
25. januar 2004 - 20:41 #17
Øhh skal lige være helt med. :-)
Jeg er en "spade" til at gennemskue dette her.

Altså
resultatsiden.html
indeholder.:

<form action="resultatside.html" method="get" onsubmit="return valider(this);">
Temperatur: <input type="text" name="temperatur">
pH: <input type="text" name="ph">
Total hårdhed: <input type="text" name="thard">
Kalhårdhed: <input type="text" name="khard">
</form>

<script type="text/javascript">
function valider(f){
  var t = parseInt(f.temperatur.value,10);
  if(t=='NaN'||t>50||t<0){
    alert('Du har angivet en ugyldig temperatur\nKun relevante temperaturer mellem 0° og 50° accepteres');
    f.temperatur.select();
    f.temperatur.focus();
    return false;
  }
  t = parseInt(f.ph.value,10);
  if(t=='NaN'||t>14||t<0){
    alert('Du har angivet en ugyldig pH-værdi\nKun værdier mellem 0 og 14 accepteres');
    f.ph.select();
    f.ph.focus();
    return false;
  }
  t = parseInt(f.thard.value,10);
  if(t=='NaN'||t>30||t<0){
    alert('Du har angivet en ugyldig Totalhårdhed\nKun relevante værdier mellem 0 og 30 accepteres');
    f.thard.select();
    f.thard.focus();
    return false;
  }
  t = parseInt(f.khard.value,10);
  if(t=='NaN'||t>50||t<0){
    alert('Du har angivet en ugyldig Kalkhårdhed\nKun relevante værdier mellem 0 og 30 accepteres');
    f.khard.select();
    f.khard.focus();
    return false;
  }
  return true;
}
</script>

OG
Altså
resultatsiden.html
indeholder.:

<script type="text/javascript">
function visDivs(){
var s = location.search;
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      var t = parseInt(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      var t = parseInt(s[i][1],10),d;
      if(t>=11)d=5;
//osv. med alle muligheder
  }
}
}
</script>

<body onload="visDivs()">

<div id="tempDiv1" style="display:none;">
Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>


Er det korrekt?? :-)
Avatar billede nitram30 Nybegynder
25. januar 2004 - 20:42 #18
OG SELVFØLGELIG
Altså
dinIndtastningsSide.html
indeholder.:

<script type="text/javascript">
function visDivs(){
var s = location.search;
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      var t = parseInt(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      var t = parseInt(s[i][1],10),d;
      if(t>=11)d=5;
//osv. med alle muligheder
  }
}
}
</script>

<body onload="visDivs()">

<div id="tempDiv1" style="display:none;">
Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
Avatar billede nitram30 Nybegynder
25. januar 2004 - 20:48 #19
Jeg kan forresten køre asp på serveren.
Avatar billede roenving Novice
26. januar 2004 - 00:21 #20
Det lyder umiddelbart som om, du har byttet rundt på dem, for indtastningssiden skal selvfølgelig ikke vise tilbage til sig selv, hvis den ved en fejl er blevet kaldt !-)

-- at køre et serverside sprog er ikke nogen bagdel, men uden for mit erfaringsområde ...

-- umiddelbart vil det gøre opgaven lettere, at du kan vise/skjule ved hjælp af f.eks. asp, men som jeg viser det, er den store forskel hvor mange data, der skal overføres til klienten ...

Resultatside:

<script type="text/javascript">
function visDivs(){

...

Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>

Indtastningsside:

<form action="resultatside.html" method="get" onsubmit="return valider(this);">
Temperatur: <input type="text" name="temperatur">

...

    f.khard.focus();
    return false;
  }
  return true;
}
</script>
Avatar billede nitram30 Nybegynder
26. januar 2004 - 22:20 #21
Vender lige tilbage om et par dage igen. Har en hulens masse projekter til skolen jeg lige skal have styr på. Så jeg er hurtigst mulig tilbage igen og eller i løbet at weekenden.
Avatar billede nitram30 Nybegynder
28. januar 2004 - 20:53 #22
Kan ikke få det til at virke... :-)
Skal jeg have en input type="button" i min form og hvordan skal koden se ud?? :-)

---
Mvh
Martin
Avatar billede roenving Novice
30. januar 2004 - 00:39 #23
Ja, der mangler en submit-knap:

<form action="resultatside.html" method="get" onsubmit="return valider(this);">
Temperatur: <input type="text" name="temperatur"><br>
pH: <input type="text" name="ph"><br>
Total hårdhed: <input type="text" name="thard"><br>
Kalkhårdhed: <input type="text" name="khard"><br>
<input type="submit" value="Se resultat">
</form>
Avatar billede nitram30 Nybegynder
30. januar 2004 - 12:49 #24
Okay efter indtastning og send får jeg følgende link.:
file:///H:/Vandvaerdi/resultatside.html?temperatur=10&ph=10&thard=5&khard=4

Hvad skal der f.eks. så ske. tænker mere hvad skal siden med svaret til denne indtastnig så hedde?
Avatar billede roenving Novice
30. januar 2004 - 14:32 #25
Så skal du på resultatside.html bruge parameter-parseren til at vise de sektioner, som svarer til:

<script type="text/javascript">
function visDivs(){
var s = location.search;
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
s = s.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      var t = parseInt(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;//***********
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      var t = parseInt(s[i][1],10),d;
      if(t>=11)d=5;

//osv. med alle muligheder

  }
}
}
</script>

-- og så have dine divs (id="tempDiv1", id="tempDiv2" osv.)

-- i tempDiv1 skal du så have noget info om temperaturer mellem 0° og 15° (jvf. **** ovenfor !-)

-- og så en stribe phDiv1, phDiv2 osv.
Avatar billede nitram30 Nybegynder
30. januar 2004 - 14:52 #26
skal de forskellige svar oprettes som små txt filer eller hvordan vil du kalde dem frem? Er villig til at betale de point du vil have for en rimelig færdig løsning da jeg ikke fatter ret meget af dette her.?
Jeg har 313 point på kontoen så gi et bud?
Avatar billede roenving Novice
30. januar 2004 - 14:59 #27
Se det sidste i 25/01-2004 20:41:44 !-)

(og så skal du forøvrigt være opmærksom på begrænsningen på 200 point pr. spørgsmål !-)

-- læs f.eks. http://expfaq.1go.dk
Avatar billede nitram30 Nybegynder
30. januar 2004 - 15:10 #28
er det, dette du tænker på.:
Hvis jeg indtaster kun en temp får jeg ikke noget svar?

<div id="tempDiv1" style="display:none;">
Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>

Jeg er villig til at give dig 150 point for en færdig løsning, nu du også ved en masse om akvariehobbyen. :-)
Er det er projekt du har lyst til for de point? :-)
Avatar billede roenving Novice
30. januar 2004 - 15:12 #29
Jeg vil prøve at vende tilbage lidt senere !-)
Avatar billede nitram30 Nybegynder
30. januar 2004 - 15:32 #30
<script type="text/javascript">
function visDivs(){
var s = location.search;
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
s = s.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      var t = parseInt(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;//*********** SKAL JEG HER SÆTTE EN TEKST ELLER DIV?
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      var t = parseInt(s[i][1],10),d;
      if(t>=11)d=5;

//osv. med alle muligheder

  }
}
}
</script>

<body onload="visDivs()">

<div id="tempDiv1" style="display:none;">
Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>

//************* ER IKKE HELT MED PÅ DENNE HER? :-)
Avatar billede roenving Novice
03. februar 2004 - 14:20 #31
Det er noget i denne stil !-)

-- jeg har sat nogle dummy-tekster ind, de skal jo selvfølgelig rettes, ligesom jeg ikke har slået relevante intervaller op, så dem skal du også kontrollere og rette ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<title>Vis akvarie-værdier</title>

<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/455538">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function visDivs(){
var s = unescape(location.search);
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
s = s.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      var t = parseInt(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      var t = parseInt(s[i][1],10),d;
      if(t>=11)d=5;
      if(t<11&&t>=9)d=4;
      if(t<9&&t>=7.8)d=3;
      if(t<7.8&&t>=6.5)d=2;
      if(t<6.5&&t>=5.5)d=1;
      if(5.5>t)d=0;
      document.getElementById("phDiv"+d).style.display="block";
      break;
    case "hard":
      var t = parseInt(s[i][1],10),d;
      if(t>=12)d=3;
      if(t<12&&t>=4)d=2;
      if(4>t)d=1;
      document.getElementById("hardDiv"+d).style.display="block";
      break;
    case "khard":
      var t = parseInt(s[i][1],10),d;
      if(t>=12)d=3;
      if(t<12&&t>=4)d=2;
      if(4>t)d=1;
      document.getElementById("khardDiv"+d).style.display="block";
      break;

  }
}
}
</script>
</head>

<body onload="visDivs()">

<div id="tempDiv1" style="display:none;">
Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv3" style="display:none;">
Vandtemperaturer under 27°, men 23° og derover:
Almindeligt tempereret akvarievand
</div>
<div id="tempDiv4" style="display:none;">
Vandtemperaturer under 32°, men 27° og derover:
Varmt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>

<div id="phDiv0" style="display:none;">
pH-værdi er under 5.5
</div>
<div id="phDiv1" style="display:none;">
pH-værdi er 5.5 eller højere men under 6.5
</div>
<div id="phDiv2" style="display:none;">
pH-værdi er 6.5 eller højere men under 7.8
</div>
<div id="phDiv3" style="display:none;">
pH-værdi er 7.8 eller højere men under 9
</div>
<div id="phDiv4" style="display:none;">
pH-værdi er 9 eller højere men under 11
</div>
<div id="phDiv5" style="display:none;">
pH-værdi er over 11
</div>

<div id="hardDiv1" style="display:none;">
Total-hårdheden er over 12, vi har hårdt vand
</div>
<div id="hardDiv2" style="display:none;">
Total-hårdheden er 4 eller derover men under 12, vi har gennemsnitligt vand
</div>
<div id="hardDiv3" style="display:none;">
Total-hårdheden er under 4, det er blødt vand
</div>

<div id="hardDiv1" style="display:none;">
Kalk-hårdheden er over 12, vi har kalkhårdt vand
</div>
<div id="hardDiv2" style="display:none;">
Kalk-hårdheden er 4 eller derover men under 12, vi har normalt kalkhårdt vand
</div>
<div id="hardDiv3" style="display:none;">
Kalk-hårdheden er under 4, det er blødt vand med lavt kalkindhold
</div>
</body>
</html>
Avatar billede nitram30 Nybegynder
08. februar 2004 - 22:01 #32
Hej Roenving!

Jeg har prøvet at rode med dit eksempel sideløbende med alle mulige andre projekter. Er der en fejl eller er det meningen at jeg skal have svar på f.eks. pH-værdi selv om jeg overhovedet ikke har intastet noget om det? undre mig også over hvorfor jeg ikke får et svar når jeg taster kalk-hårdhed ind? :-)

Er der fejl i eksempel eller er det mig der ikke helt forstår hvordan det virker.
!-)
Avatar billede roenving Novice
08. februar 2004 - 22:04 #33
1. Jeg har lavet koden, så den tror, at der er noget i alle kategorier, den overser altså ikke en manglende værdi !-)

2. Der er en fejl i de sidste 3 div'er, som selvfølgelig skal hedde:

<div id="khardDiv1" ...

osv.
Avatar billede nitram30 Nybegynder
11. februar 2004 - 20:44 #34
Hej igen.
Har haft lidt travlt. sorry.

Fatter det ikke rigtig, jeg får stadig svar på ph som jeg slet ikke har spurgt på og taster jeg et tal ind i Kh får jeg intet svar på det.

Tror jeg giver op. :-/
Avatar billede nitram30 Nybegynder
11. februar 2004 - 20:45 #35
har rettet til <div id="khardDiv1"
Avatar billede nitram30 Nybegynder
21. februar 2004 - 21:12 #36
Gør jeg noget forkert i det du har leveret eller har jeg misforstået noget i dette eksempel.
Avatar billede nitram30 Nybegynder
05. marts 2004 - 19:19 #37
Hej Roenving!

Vil du ikke lige kigge på det her bare een gang mere. Tror der er fejl i som gør at det ikke virker helt optimalt. Jeg kan desværre ikke få det at fungere helt som jeg havde forstillet mig. eller skal vi droppe det helt og afgive nogle point for det du har lavet? :-)
Avatar billede roenving Novice
08. marts 2004 - 16:34 #38
I alle case-statements kan du tilføje en linje, som springer over, hvis der ikke er en værdi:


    case "ph":
      if(s[i][1].length==0)break;
      var t = parseInt(s[i][1],10),d;
Avatar billede nitram30 Nybegynder
08. marts 2004 - 17:16 #39
Det er hermed rettet.

Men får stadig ikke noget svar på totalhårdhed og kalkhårdhed?

det er det sidste jeg stortset mangler?

tjek evt på
http://www.on-time.dk/vand/

---
mvh
martin.
Avatar billede roenving Novice
08. marts 2004 - 17:29 #40
Hov, felt-navnet er også thard, så case-sætningen skal jo bruge den og ikke 'hard'

case "thard":

-- og til test kan du prøve at indsætte en alert lige før switch-sætningen, for du har da ret i, at det er underligt, at kalkhårdheden ikke kommer med:

  alert(s[i]);
  switch(s[i][0]){
Avatar billede nitram30 Nybegynder
08. marts 2004 - 17:57 #41
der var vidst fejl i de 2 sidst af disse her..

document.getElementById("khardDiv"+d).style.display="block";

Nu virker det. :-)
Kanon.....

Giver dig point nu. men vil godt tillade mig og spørge hvis der er noget jeg ikke forstår?
Avatar billede nitram30 Nybegynder
08. marts 2004 - 17:58 #42
Øhh der er desværre fejl... ved at udfylde en kalkhårdhed på 2 får du et forkert svar.
Avatar billede roenving Novice
08. marts 2004 - 18:01 #43
Ja, jeg fik lige testet grundigere igennem, det er en simpel fejl i rækkefølgen af divs, men her er en rettet udgave af scriptet, som kører uden problemer hos mig !-)

<script type="text/javascript">
function visDivs(){
var s = '?temperatur=27&ph=6.6&thard=10&khard=25';//unescape(location.search);
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
s = s.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=11)d=5;
      if(t<11&&t>=9)d=4;
      if(t<9&&t>=7.8)d=3;
      if(t<7.8&&t>=6.5)d=2;
      if(t<6.5&&t>=5.5)d=1;
      if(5.5>t)d=0;
      document.getElementById("phDiv"+d).style.display="block";
      break;
    case "thard":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=12)d=1;
      if(t<12&&t>=4)d=2;
      if(4>t)d=3;
      document.getElementById("hardDiv"+d).style.display="block";
      break;
    case "khard":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=12)d=1;
      if(t<12&&t>=4)d=2;
      if(4>t)d=3;
      document.getElementById("khardDiv"+d).style.display="block";
      break;
  }
}
}
</script>
Avatar billede roenving Novice
08. marts 2004 - 18:12 #44
Du har fået givet dine khardDivs samme nummer ...

-- og i den ovenstående har jeg også rettet til parseFloat, så det er nemmere at paste det hele ind over !-)
Avatar billede nitram30 Nybegynder
08. marts 2004 - 18:24 #45
Det blev det desværre kun værre af.  :-/

Kunne bedre lide den anden måde det virkede på lige før.
Avatar billede roenving Novice
08. marts 2004 - 18:29 #46
-- hov jeg havde ikke set, at du havde rettet dine totalhårdheds-ting:

-- og jeg havde ikke fået fjernet noget test-kode !-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<title>Vis akvarie-værdier</title>

<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/455538">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function visDivs(){
var s = unescape(location.search);
if(2>s.length)location.href="dinIndtastningsSide.html"//retur til indtastning
s = s.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t<23&&t>=15)d=2;
      if(t<15&&t>=0)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
    case "ph":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=11)d=5;
      if(t<11&&t>=9)d=4;
      if(t<9&&t>=7.8)d=3;
      if(t<7.8&&t>=6.5)d=2;
      if(t<6.5&&t>=5.5)d=1;
      if(5.5>t)d=0;
      document.getElementById("phDiv"+d).style.display="block";
      break;
    case "thard":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=12)d=1;
      if(t<12&&t>=4)d=2;
      if(4>t)d=3;
      document.getElementById("thardDiv"+d).style.display="block";
      break;
    case "khard":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=12)d=1;
      if(t<12&&t>=4)d=2;
      if(4>t)d=3;
      document.getElementById("khardDiv"+d).style.display="block";
      break;
  }
}
}
</script>
</head>

<body onload="visDivs()">

<div id="tempDiv1" style="display:none;">

Vandtemperaturer under 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv2" style="display:none;">
Vandtemperaturer under 23°, men over 15°:
Koldt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>
<div id="tempDiv3" style="display:none;">
Vandtemperaturer under 27°, men 23° og derover:
Almindeligt tempereret akvarievand
</div>
<div id="tempDiv4" style="display:none;">
Vandtemperaturer under 32°, men 27° og derover:
Varmt vand er en helt speciel disciplin indenfor akvariehobbyen ...
</div>

<div id="phDiv0" style="display:none;">
pH-værdi er under 5.5
</div>
<div id="phDiv1" style="display:none;">
pH-værdi er 5.5 eller højere men under 6.5

</div>
<div id="phDiv2" style="display:none;">
pH-værdi er 6.5 eller højere men under 7.8
</div>
<div id="phDiv3" style="display:none;">
pH-værdi er 7.8 eller højere men under 9
</div>
<div id="phDiv4" style="display:none;">
pH-værdi er 9 eller højere men under 11
</div>
<div id="phDiv5" style="display:none;">
pH-værdi er over 11
</div>

<div id="thardDiv1" style="display:none;">
Total-hårdheden er over 12, vi har hårdt vand
</div>

<div id="thardDiv2" style="display:none;">
Total-hårdheden er 4 eller derover men under 12, vi har gennemsnitligt vand
</div>
<div id="thardDiv3" style="display:none;">
Total-hårdheden er under 4, det er blødt vand
</div>

<div id="khardDiv1" style="display:none;">
Kalk-hårdheden er over 12, vi har kalkhårdt vand
</div>
<div id="khardDiv2" style="display:none;">
Kalk-hårdheden er 4 eller derover men under 12, vi har normalt kalkhårdt vand
</div>
<div id="khardDiv3" style="display:none;">
Kalk-hårdheden er under 4, det er blødt vand med lavt kalkindhold
</div>
</body>

</html>
Avatar billede nitram30 Nybegynder
08. marts 2004 - 18:32 #47
Det jeg mangler er at der kun bliver svaret på det der bliver spurgt om.
http://www.on-time.dk/vand/
Avatar billede nitram30 Nybegynder
08. marts 2004 - 18:37 #48
Jaaaa. :-) det var jo lige det jeg skulle bruge.

Nu håber jeg at alle fejl er rettet så du slipper for mig for en stund. :-)
Men håber nu at det er okay at spørge igen hvis jeg støder ind i et problem selv om jeg giver dig dine point. :-)

Men det regner jeg ikke med er noget problem med dig.

---
Mvh
Martin
Avatar billede nitram30 Nybegynder
08. marts 2004 - 18:37 #49
her er der nogle point's. :-)
Avatar billede roenving Novice
08. marts 2004 - 18:39 #50
-- og tak for points ;~}
Avatar billede nitram30 Nybegynder
19. juni 2004 - 00:09 #51
Hej Roenving!
Har du lige mulighed for at hjælpe mig med en lille detalje?

<script type="text/javascript">
function visDivs(){
var s = unescape(location.search);
if(2>s.length)location.href="sydcichlider.html"//retur til indtastning
s = s.substring(1);
s = s.split("&");
for(i=0;s.length>i;i++){
  s[i] = s[i].split("=");
  switch(s[i][0]){
    case "temperatur":
      if(s[i][1].length==0)break;
      var t = parseFloat(s[i][1],10),d;
      if(t>=32)d=5;
      if(t<32&&t>=27)d=4;
      if(t<27&&t>=23)d=3;
      if(t=23&&t>)d=2;
      if(t=15&&t>)d=1;
      document.getElementById("tempDiv"+d).style.display="block";
      break;
  }
}
}
</script>

Jeg vil godt lige vide hvordan jeg opstiller eks.:

      if(t<27&&t>=23)d=3;

Altså hvis nu at jeg taster 23 ind så skal jeg få et svar kun på det. Altså så det ikke bliver et svar som ligger mellem 23 0g 27..

Har prøvet.:
        if(t=23)d=3;
        if(t=22)d=2;
osv men det vil den ikke...

-----------------------------------------------------

noget andet jeg heller ikke forstår i indtastnings felterne er følgende..
  var t = parseInt(f.temperatur.value,10);
  if(t=='NaN'||t>50||t<0){

value,10 hvad er det for en værdi på 10?
t>50||t<0){ Hvad bruges værdien 50 og 0 til?

Det er nok det eneste jeg lige skal bruge nu så er jeg en rigtig glad mand.?
Får jeg brug for mere hjælp opretter jeg et nyt spørgsmål.
Avatar billede nitram30 Nybegynder
19. juni 2004 - 00:12 #52
Forresten...

if(t=23)d=3;
if(t=22)d=2;


Hvis der bliver indtastet noget mellem 22 eller 23 skal jeg bare have et svar som siger "ugyldig indtastning".
Avatar billede roenving Novice
19. juni 2004 - 12:38 #53
Javascript bruger dobbelte lighedstegn til sammenligning:

if(t==23)d=3;

-- 10 i parseInt er den slags tal den skal finde, 10 er almindelige tal, men der kunne også være tale om binære tal (2) eller f.eks. hexadecimale (16 !-)
Avatar billede nitram30 Nybegynder
19. juni 2004 - 13:13 #54
OK tak for det, nu kan jeg komme videre.
Ved godt at det har taget lang tid men er begyndt at forstå hvad der sker. :-)

Kommer lige med et eksempel mere senere da jeg har nogle problemer med komma tal.
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