mikk- Skrevet 12. august 2003 Del Skrevet 12. august 2003 OK, la meg bare si først at jeg er ganske grønn i JavaScript. Har gått igjennom noen tutorials, men kan det liksom ikke lell. Holder på med en del av et script som beregner fraktkostnad ut ifra hvor stor en variabel (strShipping) er. if (strShipping == 0) { strFraktkostnad = 0; } else if (strShipping <= 1 >= 999) { strFraktkostnad = 55; } else if (strShipping <= 1000 >= 9999) { strFraktkostnad = 105; } else if (strShipping <= 10000 >= 25000) { strFraktkostnad = 179; } else { strFraktkostnad = 0; } Dette funker ikke. StrFraktkostnad blir den samme uansett: 0. Noen som har peiling på hva som kan være galt? Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 vis fram hele scriptet (regner med at det er en function) og hvordan du bruker den, så blir det litt lettere Lenke til kommentar
Legion Skrevet 12. august 2003 Del Skrevet 12. august 2003 (strShipping <= 1 >= 999) logisk feil, strShipping kan da ikke være mindre enn 1 og større enn 999. prøv noe alá ((strShipping >= 1) && (strShipping <= 999)) Lenke til kommentar
mikk- Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 (strShipping <= 1 >= 999) logisk feil, strShipping kan da ikke være mindre enn 1 og større enn 999. prøv noe alá ((strShipping >= 1) && (strShipping <= 999)) Takker! Ble litt feil med < og >, ja.. :wink: EDIT: Får det fortsatt ikke til å funke. if (strShipping >= 0) { strFraktkostnad = 0; } else if ((strShipping >= 1) && (strShipping <= 999)) { strFraktkostnad = 55; } else if ((strShipping >= 1000) && (strShipping <= 9999)) { strFraktkostnad = 105; } else if ((strShipping >= 10000) && (strShipping <= 25000)) { strFraktkostnad = 179; } else { strFraktkostnad = 0; } Det er den første (>= 0) som vises hele tiden, selv om strShipping er 230. StrFraktkostnad blir altså 0 uansett. Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 logisk feil: strShipping er større eller lik null - strFrakt settes til 0 og resten av setningen ignoreres. Snu på første< ? regner med at den første skal teste om strShipping er mindre enn null kan ikke fatte at jeg ikke så dette første gangen :oops: Lenke til kommentar
mikk- Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 logisk feil: strShipping er større eller lik null - strFrakt settes til 0 og resten av setningen ignoreres.Snu på første< ? regner med at den første skal teste om strShipping er mindre enn null kan ikke fatte at jeg ikke så dette første gangen :oops: Hm.. Siden strShipping ikke KAN bli mindre enn null, satte jeg det slik: if (strShipping == 0) { strFraktkostnad = 0; } else if ((strShipping >= 1) && (strShipping <= 999)) { strFraktkostnad = 55; } else if ((strShipping >= 1000) && (strShipping <= 9999)) { strFraktkostnad = 105; } else if ((strShipping >= 10000) && (strShipping <= 25000)) { strFraktkostnad = 179; } else { strFraktkostnad = 0; } Men det funker fortsatt ikke. Får ikke noe "feil" heller... :-? Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 sett en alert i hver av if'ene for å se hvilke den faktisk går inn i Lenke til kommentar
mikk- Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 if (strShipping == 0) { strFraktkostnad = 0; alert("0"); } else if ((strShipping >= 1) && (strShipping <= 999)) { strFraktkostnad = 55; alert("1-999"); } else if ((strShipping >= 1000) && (strShipping <= 9999)) { strFraktkostnad = 105; alert("1000-9999"); } else if ((strShipping >= 10000) && (strShipping <= 25000)) { strFraktkostnad = 179; alert("10000-25000"); } else { strFraktkostnad = 0; alert("else, (0)"); } Det er det første alternativet som kommer frem. Har også satt inn en document.write og skjekket at strShipping faktisk er 230. Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 må bare spørre - står str for string? Lenke til kommentar
mikk- Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 må bare spørre - står str for string? Hm.. Det vet jeg egentlig ikke. Er ikke jeg som har kodet resten av skriptet.. Mulig jeg er utrolig dum nå, men de ser ut som vanlige variabler. Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 cluet er om variablen blir definert som String eller int. Er den String så er du litt ute å kjøre siden du ikke kan bruke likhet som operator på strenger Prøv å caste om strShiping til int hvis du er usikker. Hvordan blir strShiping definert? (husker ikke om int er relevant i js. Driver mest med java - det jeg mener med int er seff number) Lenke til kommentar
Blib Skrevet 12. august 2003 Del Skrevet 12. august 2003 Legg inn en document.write(strShipping) foran der. Kanskje feilen ligger lengre oppe i koden og at denne variabelen alltid er 0? Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 Har også satt inn en document.write og skjekket at strShipping faktisk er 230. hmm, lesebrillene på plass idag blib? Lenke til kommentar
Blib Skrevet 12. august 2003 Del Skrevet 12. august 2003 Har også satt inn en document.write og skjekket at strShipping faktisk er 230. hmm, lesebrillene på plass idag blib? Hmm. *titter seg på nesetuppen* Nei, ser ikke slikt ut. Tror ikke jeg sov lenge nok i natt. Usj. Beklager Forresten, du kan jo bare bytte den ut med en Switch eller? (Har bare vært borti JS en gang før ) Lenke til kommentar
mikk- Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 cluet er om variablen blir definert som String eller int. Er den String så er du litt ute å kjøre siden du ikke kan bruke likhet som operator på strengerPrøv å caste om strShiping til int hvis du er usikker. Hvordan blir strShiping definert? (husker ikke om int er relevant i js. Driver mest med java - det jeg mener med int er seff number) Som jeg sa: kan ikke dette! :wink: Hvordan caster man? Er ikke helt sikkert på hva verken en string eller int er... :oops: Høres jo logisk ut at det er en string når det står str foran... Hva gjør jeg hvis det skulle vise seg å være det? (Virker sikkert utrolig masete nå.. :wink: ) Blib: Har testet det, og den var 230. Lenke til kommentar
Zethyr Skrevet 12. august 2003 Del Skrevet 12. august 2003 Der hvor du deklarerer strShipping skal det stå: strShipping=230; for å deklarere int (nummer) strShipping="230"; for å deklarere string (bokstaver) et eksempel: //lager fire variabler, to integer og to string var int1; int1 = 2; var int2; int2 = 1; var str1; str1 = "1"; var str2; str2 = "2"; //kalkulerer som string eller int var svarInt; svarInt = int1 + int2; var svarStr; svarStr = str1 + str2; nå skal svarInt være 3, mens svarStr skal være 12.. detter er tatt rett fra hodet uten å teste så jeg er ikke sikker på at alt er riktig... if-else - setningen fungerer bare med int...!! :wink: Lenke til kommentar
mikk- Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 Åkei! Det tenkte jeg óg på, bare at jeg ikke visste hva de forskjellige hette! :smile: Det er nok en int, ja. EDIT: Yep, (strShipping+2) er 232. (Og strShipping er 230). Lenke til kommentar
enden Skrevet 12. august 2003 Del Skrevet 12. august 2003 Det var da som pokker. Var sikker på at løsningen var string... Kanke du maile hele siden til meg så skal jeg fikle litt. Man får så mye bedre forståelse for ting når man kan leke litt... Lenke til kommentar
Zethyr Skrevet 27. august 2003 Del Skrevet 27. august 2003 Kom på en ting for en stund siden man har glemt å svare... har du med en return?? hvis ikke er det jo ikke rart i at det ikke funker da. Dette gjelder seff bare i en function, men allikevel.... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå