08. september 2003 - 10:17Der er
38 kommentarer og 1 løsning
hidden field value
er der nogen måde jeg kan smide den beregning på et hidden field: dette vil den ikke æde:
<input name="Freight" type="hidden" id="Freight6" value="<% value = CInt(Sum_Weight.Fields.Item("WeightTotal").Value) If value <= 50 Then response.write formatNumber(rsShippingrates.Fields.Item("50").Value,2)
ElseIf value <= 100 Then response.write formatNumber(rsShippingrates.Fields.Item("100").Value,2)
ElseIf value <= 250 Then response.write formatNumber(rsShippingrates.Fields.Item("250").Value,2)
ElseIf value <= 500 Then response.write formatNumber(rsShippingrates.Fields.Item("500").Value,2)
ElseIf value <= 1000 Then response.write formatNumber(rsShippingrates.Fields.Item("1000").Value,2)
ElseIf value <= 2000 Then response.write formatNumber(rsShippingrates.Fields.Item("2000").Value,2)
2. hvordan ligger jeg resultatet fra ovenstående sammen med: <%= FormatNumber((Sum_Price.Fields.Item("Price_Total").Value), 2)%> så jeg får en Total Total pris 3. hvordan ligger jeg 2.s værdi på et hidden field så jeg kan sende den værdi videre
Sum_Price.Fields.Item("Price_Total").Value denne størelse er tekst derfor konverterer jeg til tal. FreightCost er også tekst. Total=Cdbl(Sum_Price.Fields.Item("Price_Total").Value)+Cdbl(FreightCost) Nu udskrives total så i det skjulte inputfelt.
<input name="Payment" type="hidden" id="Payment6" value="<% Request.Querystring(Betalingsvalg)%>"> virker ikke - jeg sender URL variabel til den side: ...&Betalingsvalg=<%=Request.Form("Betalingsvalg")%>
<input name="Amount" type="hidden" id="Amount" value="<%=TotalTotal%>"></td> og det virkede vel?
du bør gemme Request.Querystring(Betalingsvalg)i en variabel, som du kunne kalde Betalingsvalg. Man plejer at hente de data, der sendes til en asp-side til at begynde med. Når du så senere vil udskrive den sker det f.eks. således: <input name="Payment" type="hidden" id="Payment6" value="<%=Betalingsvalg">
når jeg gennem den i en variabel kan jeg så bare gøre sådan: <%Betalingsvalg=Request.Querystring(Betalingsvalg)%> og så hente den som du skriver: <input name="Payment" type="hidden" id="Payment6" value="<%=Betalingsvalg%>">
Når du udskriver Betalingsvalg i det skjulte felt, henter du den ikke, men sender værdien ud til brugeren. Hvis brugeren senere submitter, kan du hente den med ordren Betalingsvalg=Request.form.("Betalingsvalg") eller Betalingsvalg=Request.Querystring.("Betalingsvalg") afhængig af om hvilken metode, der benyttes, når der submittes.
Ok, men den ASP-side, som aktiveres, når brugeren trykker submit (det er åbenbart en side, hvis navn er gemt i variablen MM_editAction) bør så starte med at hente alle data fra de forskellige input-felter: Status=Request.form("Status") customerID=Request.form("customerID") ... således fortsættes, og så har du alle de indsendte data i forskellige variable til videre behandling.
men så kan du konvertere tekst til tal x=Clng(x), Cint(x) eller Cdbl(x) afhængig af tal-typen. Clng meget store heltal Cint heltal mellem ca. -32000 og 32000 Cdbl kommatal med mange cifre (for at sige det lidt løst)
<% value = Clng(Sum_Weight.Fields.Item("WeightTotal").Value) If value <= 50 Then FreightCost=formatNumber(Clng(rsShippingrates.Fields.Item("50").Value),2)
ElseIf value <= 100 Then FreightCost=formatNumber(Clng(rsShippingrates.Fields.Item("100").Value),2)
ElseIf value <= 250 Then FreightCost=formatNumber(Clng(rsShippingrates.Fields.Item("250").Value),2)
ElseIf value <= 500 Then FreightCost=formatNumber(Clng(rsShippingrates.Fields.Item("500").Value),2)
ElseIf value <= 1000 Then FreightCost=formatNumber(Clng(rsShippingrates.Fields.Item("1000").Value),2)
ElseIf value <= 2000 Then FreightCost=formatNumber(Clng(rsShippingrates.Fields.Item("2000").Value),2)
der er ikke nogen grund til at have Clng her formatNumber(Clng(rsShippingrates.Fields.Item("50").Value),2) formatNumber-funktionen laver et tal. Og med Clng får du fjernet decimaler efter kommaet. her rsShippingrates... faktisk et kommtal? Hvis det skal gemmes i et felt med lange heltal, får du måske problemer. prøv med FreightCost=Clng(rsShippingrates.Fields.Item("50").Value) Så prøver du at gemme et langt heltal i databasen.
Når du siger, at det ikke virker, hvad er det så der sker?
jo, eller decimal med to decimaler. Det er jo den slags tal du arbejder med. Så vælg devima, og så kan du derefter fortælle, at det skal være tal med to decimaler. Og så skal du blot benytte formatnumber og ikke noget med Clng etc her. value skal dog være et tal enten =Cint... eller =Clng...
jeg har nu defineret TotalTotal i databasen til Decimal med 2 decimaler men den melder fejl når jeg har formatteret det: <% TotalTotal=formatnumber(((Sum_Price.Fields.Item("Price_Total").Value)) + FreightCost,2) %>
når jeg gør sådan får jeg ikke fejl: <% TotalTotal=(((Sum_Price.Fields.Item("Price_Total").Value)) + FreightCost) %>
ja, måske. Hvis du kun skal bruge databasen til at gemme i, og alle bereninger m.m. laves i dine asp-sider, så kan du lade felterne i databasen være af typen tekst. Du skal så blot konvertere din tal til tekst inden du gemmer i databasen. Og den anden vej, når du henter dem, for at regne på dem. Hvis du henter dem for at vise dem i en asp-side, kan du lade dem være som tekst. x=Cstr(y)
nej kun de variable, som er tal og som skal gemmes i databasen. Men det kan også være den vil tage dem uden videre. Hvis value var en tekst-streng ville value<50 svare til at spørge om "25"<50 og det går ikke.
hehe - alt det og så ender jeg med at skrive det som tekst til DBen. Der virker det hele. Hvordan trækker jeg det ud som beløb ? <%=(rsOrdre.Fields.Item("Amount").Value)%> ved jeg står som eks. 730,00 i DB, men vises som 730
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.