Avatar billede neeo Nybegynder
23. januar 2004 - 00:54 Der er 17 kommentarer og
1 løsning

lille fejlfinding ?

jeg har på en af mine side en ekstern javascript fil til den.

den ser således ud :

function udregn(aFe,aAmount,aAmount1){
  if (aFe == "x_AntalVoksenSalg") {
    var AntalVoksenSalg;
    var Ele;
    Ele = document.getElementById(aFe);   
    AntalVoksenSalg = Ele.selectedIndex;
    var VoksenSalg  = 0;   
    var VoksenSalg1 = 0;
    if (isNaN(aAmount)) {
      VoksenSalg = parseFloat(aAmount.replace(",","."));
    }
    if (isNaN(aAmount1)) {
      VoksenSalg1 = parseFloat(aAmount1.replace(",","."));
    }
    var Temp_Amount = 0.00;
    Temp_Amount = AntalVoksenSalg * parseFloat(VoksenSalg + VoksenSalg1);
    Temp_Amount = Math.round(Temp_Amount * 100) / 100;
    Edit_Box    = document.getElementById("x_PrisVoksenSalg");   
    Edit_Box.value = Temp_Amount;
  }

*/ det er den forneden som melder fejl /*


  if (aFe == "AntalBarnSalg") {
 
  var AntalBarnSalg;
  var Ele;
    Eles = document.getElementById(aFe);   
    AntalBarnSalg= Ele.selectedIndex;
    var BarnSalg= 0;   
    var BarnSalg1= 0;
    if (isNaN(aAmount)) {
      BarnSalg= parseFloat(aAmount.replace(",","."));
    }
    if (isNaN(aAmount1)) {
      BarnSalg1= parseFloat(aAmount1.replace(",","."));
    }
    var Temp_Amount = 0.00;
    Temp_Amount = AntalBarnSalg* parseFloat(BarnSalg+ BarnSalg1);
    Temp_Amount = Math.round(Temp_Amount * 100) / 100;
    Edit_Box    = document.getElementById("x_AntalBarnSalg");   
    Edit_Box.value = Temp_Amount;
   

  }
  if (aFe == "AntalInfantSalg") {
 


  }



}




er der nogen af jer der kan se hvad jeg har lavet galt ?
Avatar billede neeo Nybegynder
23. januar 2004 - 01:26 #1
jeg har retet eles til ele men det virker stadige ikke

var AntalBarnSalg;
  var Ele;
    Ele = document.getElementById(aFe);
Avatar billede satanic_raven Nybegynder
23. januar 2004 - 01:36 #2
Prøv at sende hele siden herind, er lidt nemmere når man kan se det hele i perspektiv...

S.R.
Avatar billede neeo Nybegynder
23. januar 2004 - 01:38 #3
det her er min eksterne javascript fil. (har også en asp side som kalder på det her)

function initSels(){
    createOpts(document.getElementById('x_afrejse'));
}

function createOpts(sel){
    var s = new Array();
    var num = 0, txt = "arr1";
    var ar = opt = null;
    var n = sel.selectedIndex;
    var args = createOpts.arguments.length;
    for(var i=1;args>i;i++){
        s[i-1] = document.getElementById(createOpts.arguments[i]);
        if(s[i-1]==sel)num=i;
    }
    if(args>1){
        if(s[num])sel = s[num];
        else return;
    }
    if(n==0&&args>1){
        for(i=num;args>i+1;i++){
            s[i].length = 0;
            opt = document.createElement('OPTION');
            s[i].appendChild(opt);
            opt.value = "";
            opt.text = "\74-- Vælg --";
        }
        return true
    };
    for(i=0;num>i;i++){
        txt+="["+(s[i].selectedIndex-1)+"][1]";
    }
    ar = eval(txt);
    sel.length = 0;
    opt = document.createElement('OPTION');
    sel.appendChild(opt);
  opt.value = "";
  opt.text = "-- Vælg --";
    for(i=0;ar.length>i;i++){
        opt = document.createElement('OPTION');
        sel.appendChild(opt);
        if(typeof ar[i] == 'object'){
          opt.value = ar[i][0];
            opt.text = ar[i][0];
        }else{
          str = ar[i];
          if (str.indexOf("|")!=-1) {
            str = str.substr(0,str.indexOf("|"));
          }
            opt.value = ar[i];
          opt.text = str;
        }
    }
    if(args>num+2){
        for(i=num+1;args-1>i;i++){
            s[i].length = 0;
            opt = document.createElement('OPTION');
            s[i].appendChild(opt);
            opt.value = "";
            opt.text = "\74-- Vælg --";
        }
    }
}

function showdata(theform,sel) {
  str = sel;
  if (str.indexOf("|")!=-1) {
    str = str.substr(str.indexOf("|")+1);
  }
  str = eval("arrData"+str)
  var myArr = (""+str).split(",");
  theform.pakke_nr.value = myArr[0];
  theform.x_afrejsedato.value = myArr[1];
  theform.x_depart.value = myArr[2];
  theform.x_arrival.value = myArr[3];
  theform.x_Destairlines.value = myArr[4];

  theform.x_antal.value = myArr[5];
  theform.x_PrisInfantSalg.value = myArr[6];
  theform.x_terminal.value=myArr[7];
}


function pro(f){
  x_Totalalle = (f.x_Totalalle.value!="")?+f.x_Totalalle.value:0;
  x_total = (f.x_total.value!="")?+f.x_total.value:0;
  f.x_Profit.value = x_total-x_Totalalle;
}

function udregn(aFe,aAmount,aAmount1){
  if (aFe == "x_AntalVoksenSalg") {
    var AntalVoksenSalg;
    var Ele;
    Ele = document.getElementById(aFe);   
    AntalVoksenSalg = Ele.selectedIndex;
    var VoksenSalg  = 0;   
    var VoksenSalg1 = 0;
    if (isNaN(aAmount)) {
      VoksenSalg = parseFloat(aAmount.replace(",","."));
    }
    if (isNaN(aAmount1)) {
      VoksenSalg1 = parseFloat(aAmount1.replace(",","."));
    }
    var Temp_Amount = 0.00;
    Temp_Amount = AntalVoksenSalg * parseFloat(VoksenSalg + VoksenSalg1);
    Temp_Amount = Math.round(Temp_Amount * 100) / 100;
    Edit_Box    = document.getElementById("x_PrisVoksenSalg");   
    Edit_Box.value = Temp_Amount;
  }
 
 
  if (aFe == "AntalBarnSalg") {
  var AntalBarnSalg;
  var Ele;
  Ele = document.getElementById(aFe);
  AntalBarnSalg = Ele.selectedIndex;
  var BarnSalg =0;
  var BarnSalg1=0;
  if (isNaN(aAmount)){
    BarnSalg= parseFloat(aAmount.replace(",","."));
    }
    if (isNaN(aAmount1)){
    BarnSalg1=parseFloat(aAmount1.replace(",","."));
    }
    var Temp_Amount= 0.00;
      Temp_Amount = AntalVoksenSalg * parseFloat(VoksenSalg + VoksenSalg1);
      Temp_Amount = Math.round(Temp_Amount * 100) / 100;
      Edit_Box    = document.getElementById("x_PrisVoksenSalg");   
    Edit_Box.value = Temp_Amount;
  }
   

 
  if (aFe == "AntalInfantSalg") {
    var AntalInfantSalg;
    var Ele;
    Ele = document.getElementById(aFe);   
    AntalInfantSalg = Ele.selectedIndex;
    var InfantSalg  = 0;   
    var InfantSalg1 = 0;
    if (isNaN(aAmount)) {
      InfantSalg = parseFloat(aAmount.replace(",","."));
    }
    if (isNaN(aAmount1)) {
      InfantSalg1 = parseFloat(aAmount1.replace(",","."));
    }
    var Temp_Amount = 0.00;
    Temp_Amount = AntalInfantSalg * parseFloat(InfantSalg + InfantSalg1);
    Temp_Amount = Math.round(Temp_Amount * 100) / 100;
    Edit_Box    = document.getElementById("x_PrisInfantSalg");   
    Edit_Box.value = Temp_Amount;



  }



}
Avatar billede skovenborg Nybegynder
23. januar 2004 - 17:20 #4
i hvert fald skal Round være med stort i Math.Round:
Temp_Amount = Math.Round(Temp_Amount * 100) / 100;

Men kunne du ikke sige hvad fejlen består i? Laver den en scriptfejl eller printer den det forkerte ud?

Desuden skal du også være sikker på at Ele.selectedIndex; (som du skriver et par gange) giver det ønskede resultat. Vel at mærke giver den _ikke_ værdien i den valgte select-option (eller hvad du prøver på at hente).
Avatar billede neeo Nybegynder
23. januar 2004 - 17:57 #5
den første : if (aFe == "x_AntalVoksenSalg")  den virker fint ind i min asp side.
men de to andre de returnere ikke noget i aspen, de kommer bare en lille ikon om fejl nede expore når jeg kalder på dem :(
Avatar billede skovenborg Nybegynder
23. januar 2004 - 18:24 #6
okay, nu er det svært helt konkret at se fejlen når man ikke har selve siden at kigge på (du kunne derfor smide et link til den side du arbejder på).

Og så må du meget undskylde - Math.round skal være med lille ;-S En tanketorsk fra min side af.

Men i hvert fald er der temmelig sikkert en fejl i AntalBarnSalg hvor du til sidst nok skal skrive:
if (isNaN(aAmount)){
    BarnSalg= parseFloat(aAmount.replace(",","."));
    }
    if (isNaN(aAmount1)){
    BarnSalg1=parseFloat(aAmount1.replace(",","."));
    }
    var Temp_Amount= 0.00;
      Temp_Amount = AntalBarnSalg * parseFloat(BarnSalg + BarnSalg1);
      Temp_Amount = Math.round(Temp_Amount * 100) / 100;
      Edit_Box    = document.getElementById("x_PrisBarnSalg"); 
    Edit_Box.value = Temp_Amount;
  }
Avatar billede skovenborg Nybegynder
23. januar 2004 - 18:25 #7
skal der forresten ikke stå:
if (aFe == "x_AntalBarnSalg")
if (aFe == "x_AntalInfantSalg")

ligesom der står:
if (aFe == "x_AntalVoksenSalg")

Bare et gæt ;-)
Avatar billede neoo Nybegynder
23. januar 2004 - 18:46 #8
jeg en link her.
http://www.boperfekt.dk/test/bookings.rar
jeg har så pakket det ned i en pakke.
hvis du gider at være sød at kigge på det :)
Avatar billede skovenborg Nybegynder
23. januar 2004 - 19:02 #9
okay det skulle ikke være x_AntalInfantSalg så ;-)

Jeg skal desværre noget lige nu, så jeg kan først se på det i morgen - så enten må du vente lidt eller måske kan en anden hjælpe dig. Sorry.

Foresten skal du kalde din funktion rigtigt:
<select size="1" name="x_AntalBarnSalg" onchange="regn('AntalBarnSalg');">
skal være:
<select size="1" name="x_AntalBarnSalg" onchange="udregn('AntalBarnSalg');">
Avatar billede neoo Nybegynder
23. januar 2004 - 19:15 #10
du skal mange gange tak fordi du vil hjælpe, jeg håber der er andre der vil hjælpe, ellers er du  velkommen til at hjælpe imorgen :)
Avatar billede skovenborg Nybegynder
24. januar 2004 - 16:54 #11
Først og fremmest skal du rette lidt i formen i opretbooking.asp:
<form action="OpretBooking.asp" method="post" name="form1">

og senere:
<select size="1" name="x_AntalVoksenSalg" onchange="udregn('x_AntalVoksenSalg','<%= PrisVoksenSalg %>','<%= PrisVoksenSalg1 %>');">

....
<select size="1" name="x_AntalBarnSalg" onchange="udregn('x_AntalBarnSalg',12,20);">
.....
<select size="1" name="x_AntalInfantSalg" onchange="udregn('x_AntalInfantSalg',12,20);">

Her skal der sikkert stå noget ASP i stedet for 12 og 20, men pointen er at du først glemte at sætte nogle tal ind som argumenter til funktion (den kræver jo tre).
Avatar billede skovenborg Nybegynder
24. januar 2004 - 16:54 #12
Og her er så den rettede funktion :-)

function udregn(aFe,aAmount,aAmount1){
  if (aFe == "x_AntalVoksenSalg") {
    var AntalVoksenSalg;
    var Ele;
    Ele = document.form1.elements[aFe];//document.getElementById(aFe);
    AntalVoksenSalg = Ele.selectedIndex;
    var VoksenSalg  = 0;   
    var VoksenSalg1 = 0;
    if (isNaN(aAmount)) {
      VoksenSalg = parseFloat(aAmount.replace(",","."));
    }
    else VoksenSalg = aAmount;
    if (isNaN(aAmount1)) {
      VoksenSalg1 = parseFloat(aAmount1.replace(",","."));
    }
    else VoksenSalg1 = aAmount1;
    var Temp_Amount = 0.00;
    Temp_Amount = parseInt(AntalVoksenSalg) * parseFloat(VoksenSalg + VoksenSalg1);
    Temp_Amount = Math.round(Temp_Amount * 100) / 100;
    Edit_Box    = document.form1.x_PrisVoksenSalg;//document.getElementById("x_PrisVoksenSalg");
    Edit_Box.value = Temp_Amount;
  }
 
 
  if (aFe == "x_AntalBarnSalg") {
  var AntalBarnSalg;
  var Ele;
  Ele = document.form1.elements[aFe];//document.getElementById(aFe);
  AntalBarnSalg = Ele.selectedIndex;
  var BarnSalg =0;
  var BarnSalg1=0;
  if (isNaN(aAmount)){
    BarnSalg= parseFloat(aAmount.replace(",","."));
    }
  else BarnSalg = aAmount;
    if (isNaN(aAmount1)){
    BarnSalg1=parseFloat(aAmount1.replace(",","."));
    }
  else BarnSalg1 = aAmount1;
    var Temp_Amount= 0.00;
      Temp_Amount = parseInt(AntalBarnSalg) * parseFloat(BarnSalg + BarnSalg1);
      Temp_Amount = Math.round(Temp_Amount * 100) / 100;
      Edit_Box    = document.form1.x_PrisBarnSalg;//document.getElementById("x_PrisVoksenSalg");
    Edit_Box.value = Temp_Amount;
  }
   

 
  if (aFe == "x_AntalInfantSalg") {
    var AntalInfantSalg;
    var Ele;
    Ele = document.form1.elements[aFe];//document.getElementById(aFe);
    AntalInfantSalg = Ele.selectedIndex;
    var InfantSalg  = 0;
    var InfantSalg1 = 0;
    if (isNaN(aAmount)) {
      InfantSalg = parseFloat(aAmount.replace(",","."));
    }
    else InfantSalg = aAmount;
    if (isNaN(aAmount1)) {
      InfantSalg1 = parseFloat(aAmount1.replace(",","."));
    }
    else InfantSalg1 = aAmount1;

    var Temp_Amount = 0.00;
    Temp_Amount = parseInt(AntalInfantSalg) * parseFloat(InfantSalg + InfantSalg1);
    Temp_Amount = Math.round(Temp_Amount * 100) / 100;
    Edit_Box    = document.form1.x_PrisInfantSalg;//document.getElementById("x_PrisInfantSalg");
    Edit_Box.value = Temp_Amount;



  }



}
Avatar billede neeo Nybegynder
25. januar 2004 - 22:08 #13
supeerrrrrrrr,,, tussind tak for hjælpen, det virker,(du må lige svare så du kan får nogle poin)


men jeg har et andet spørgsmål som hvad nu hvis de her valgte informationer skal gemmes i opretbooking tabelen og der skal samtidiget minuses en fra antalet.
hvordan kan man gøre det ?.(jeg skal nok smide flere poin ind)  :)
Avatar billede skovenborg Nybegynder
25. januar 2004 - 22:43 #14
øhm, ved ikke om jeg helt forstår:

Du vil gemme dataene i en tabel (database vel) - og derefter trække én fra antalet af personer. Eller skal brugeren senere kunne vælge et andet antal personer?

Det skal lige sides at jeg ikke kan ASP, så du må evt. stille det spørgsmål i ASP-kategorien, hvis det er noget i den stil du tænker på ;-)
Avatar billede skovenborg Nybegynder
25. januar 2004 - 22:44 #15
nåja, svaret.... her er det ;-)
Avatar billede neeo Nybegynder
25. januar 2004 - 23:10 #16
alle de informationer skal kunne gemmes i en tabel i databasen, og derefter skal der  - en fra antalet.
en måske skulle jeg stille spørgesmålet i asp sektionen.
men det var mere fordi, at nu havde du hjulpet lige præsic med det her, og evt kunne være nemmere for dig.
Avatar billede neeo Nybegynder
25. januar 2004 - 23:10 #17
men du skal have tussind tak fordi du har hjulpet mig :)
Avatar billede skovenborg Nybegynder
25. januar 2004 - 23:26 #18
jamen det var så lidt - men mon ikke dem i asp-kategorien kan hjælpe. Jeg synes bare det lyder lidt mærkeligt at sende det hele ind i databasen og derefter trække én fra. Det kan du jo ligeså godt gøre før du sender det ind i databasen. Eller også har du andre tanker :-)

Takker for point forresten :-)
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