Hej! jag håller på med en funktion där man ska kunna räkna ut månadskostnaden då man handlar på avbetalning. Varan i fråga är motorcyklar, och kunden ska kunna fylla i pris, kontantbetalning och antal månader, så ska månadskostnaden räknas ut. Jag har försökt fixa till det själv, men då jag inte lyckats frågar jag nu om hjälp.
Jag har ändrat lite fram och tillbaka, och det är så här det ser ut nu. Jag är inte alls duktig vad gäller asp, så därför hoppas jag att någon kan hjälpa mig!
Jag gjorde en liknande funktion för tio år sedan, men jag räknade ut elkostnaden för ett visst abonemang... eller nåt. Det var nån skolövning.
Jag använde javascript och om din övning går ut på att bara visa ett resultat på skärmen undrar jag om inte det skulle kunna vara ett alternativ...
***
Oavsett vilket, (asp eller js) du måste ha matten klar för dig.
Aha!! Det är preset för just denna MC som avses!? Ursäkta, det fattade inte jag.
Ett tips: Skriv inte "SELECT stjärna ..." i din sql-fråga. Bättre att skriva "SELECT intPrice ..." , alltså det som avses.
Hur ser matten ut!?
Betalar man samma ränta hela tiden, delat på 12? Eller mindre ränta på slutet? uppäggningsavgift + faktureringsavgift brukar till komma. första månaden gratis brukar det vara. handpenning brukar det vara, kan skifta, men kanske 10-20% av totala summan. skriv exempel, 20%, det skulle bli knappt 20.000 i detta exemplet. Det är väl rimligt om man köper en hoj för hundra lök?
Ha!! Antal månader kan du väl begränsa till varje halvår. Eller tror du någon vill betala av på exakt 49 månader!? :-)
Nåja, det är ju skit samma, så den kan du ha kvar...
***
reknapris = priset*0.2
vad betyder detta!? 20% av priset, vad är det!?
Det saknas en del grejer... annars är det bra början!
jo, reknapris är det priset som är kvar då man tagit bort handpenningen. anledningen till att jag delar med 12 osv. är för att jag inte fått det att fungera när jag försöker hämta värdet som postas från formuläret. Jag testade att göra detta i javascript, men jag är inte så duktig vad gäller js heller, så jag började försöka göra det i asp istället. men jag kan skriva det i javascript och återkomma! ända problemet jag ser då är hur jag ska lösa det med priset och räntan, för det ska hämtas från en databas...
select * är för att jag använder alla fält i tabellen för att skriva ut info om motorcykeln. jag har inte skrivit med koden för hela sidan för att det tar sån plats :(
angående matten, ja det är uppläggningsavgift och faktureringsavgift. jag har bara inte tagit med dessa nu, då jag inte får det att fungera utan det heller. Handpenningen ska vara på minst 20%, man ska också kunna ange en högre handpenning.
förresten, hur ska jag hämta värdet från select-satsen? den har namnet monader, ska jag då använda request.form("monader")?
okej, nu har jag grejjat lite med det här... jag har gjort om så funktionen är javascript, och jag anropar funktionen med hjälp av onsubmit... jag får dock upp felkoden:
ADODB.Field error '80020009'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/mcVisa.asp, line 0
jag har googlat lite, och om jag förstår rätt så får den inte med det data jag försöker skicka med. någon som kan hjälpa mig att förstå varför?
KOD:
<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<!--#include file="connect.asp" -->
<head>
<title>Eurowheels</title>
<META NAME="keywords" CONTENT="mc, motorcyklar, fellingsbro, örebro, mctillbehör, skinnställ, allvädersställ">
<META NAME="description" CONTENT="Försäljning av motorcyklar och mc-tillbehör i fellingsbro, 3 mil utanför örebro">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
<SCRIPT language="javascript">
function Popup(url,id,options){
window.open(url,id,options);
}
</SCRIPT>
</head>
<body>
<div id="wrap">
<div id="head"></div>
<div id="main_wrap_vit">
<div id="main_left">
<!-- #include FILE="meny.asp" -->
</div>
<div id="main_middle">
<%
sel2 = "SELECT * FROM kredit WHERE ID = 1"
sel = "SELECT * FROM motorcyklar WHERE ID =" & cint(Request.QueryString("ID"))
set rs = connect.Execute(sel2)
set Recset = connect.Execute(sel)
%>
<B><%=Recset("brand")%> <%=Recset("modell")%> -<%=Recset("yearmodell")%> <%If (DateDiff("d", Recset("Datum"), Date)) < 20 Then %><FONT COLOR="RED"><B>Nytt!</B></FONT><%End If%></B><br><br>
<%
'-- Räknar ut höjen på bilden då den ska vara 350pixlar bred ----
if Recset("imageWidth") <> "" and Recset("imageHeight") <> "" then
HEIGHT = (350 / cstr(Recset("imageWidth")) * cstr(Recset("imageHeight")))
WIDTH = 350
end if
%>
<A HREF="javascript:Popup('bild.asp?Bild=<%=Recset("image")%>&width=<%=Recset("imageWidth")%>&height=<%=Recset("imageHeight")%>','photo','scrollbars=no,width=<%=Recset("imageWidth")%>,height=<%=Recset("imageHeight")%>,top=40,left=60')">
<IMG SRC="administration/editMC/imageup/<%=Recset("image")%>" onerror="this.src='admin/ImageMC/noimage.jpg'" BORDER="0" WIDTH="<%=WIDTH%>" HEIGHT="<%=HEIGHT%>">
</A><br><br>
<%=Recset("besk")%>
<br><br>
Möjlighet till finansiering finns via Wasa Kredit AB<br>
<%
%>
<script type="text/javascript">
function berakningen()
{
var reknapris;
var renta = <%=rs("kreditrenta")%>;
var avbetalspris;
var priset = <%=Recset("price")%>;
reknapris = priset*0.2;
avbetalspris = (reknapris/12)+((reknapris/12)*renta);
document.write(avbetalspris);
}
</script>
<-!--<table>
<tr>
<form onsubmit="berakningen()">
<td>Pris:</td><td> <input type="text" name="pris" value="<%=Recset("price")%>" /> kr</td></tr>
<tr>
<td>
Kontantinsats: </td><td><input type="text" name="kontantinsats" value="" /> kr</td></tr>
<tr>
<td>
Räntesats:</td><td> <input type="text" name="rentesats" value="" /></td></tr>
<tr>
<td>
Antal Månader:</td><td> <select name="monader">
<option SELECTED value="12">12</option><option value="13">13</option><option value="14">14</option>
<option value="15">15</option><option value="16">16</option><option value="17">17</option>
<option value="18">18</option><option value="19">19</option><option value="20">20</option>
<option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option>
<option value="27">27</option><option value="28">28</option><option value="29">29</option>
<option value="30">30</option><option value="31">31</option><option value="32">32</option>
<option value="33">33</option><option value="34">34</option><option value="35">35</option>
<option value="36">36</option><option value="37">37</option><option value="38">38</option>
<option value="39">39</option><option value="40">40</option><option value="41">41</option>
<option value="42">42</option><option value="43">43</option><option value="44">44</option>
<option value="45">45</option><option value="46">46</option><option value="47">47</option>
<option value="48">48</option><option value="49">49</option><option value="50">50</option>
<option value="51">51</option><option value="52">52</option><option value="53">53</option>
<option value="54">54</option><option value="55">55</option><option value="56">56</option>
<option value="57">57</option><option value="58">58</option><option value="59">59</option>
<option value="60">60</option>
</select></td></tr>
<tr><td>
<input type="submit" />
</td></tr>
</form>
<tr><td>Månadskostnad: </td><td><script type="text/javascript">document.write(avbetalspris);</script></td></tr>
</table> --!>
<%
%>
<br>
<img src="Image/wasakreditloggo.gif">
<br>
<br>
<b>Öppettider</b><br>
<table cellspacing="0" cellpadding="4" border="0">
<tr><td CLASS="rubrik" width="150"><IMG SRC="image/Arrow.gif" BORDER="0">Måndagar</td><td CLASS="rubrik">10:00 - 17:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Tisdagar</td><td CLASS="rubrik">10:00 - 19:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Onsdagar</td><td CLASS="rubrik">10:00 - 17:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Torsdagar</td><td CLASS="rubrik">10:00 - 19:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Fredagar, Lördagar</td><td CLASS="rubrik">10:00 - 16:00</td></tr>
</table>
</div>
<div id="main_right">
<br><br>
<div align="left">
<%=Recset("brand")%> <%=Recset("modell")%><BR>
<%if Recset("yearmodell") <> "" then%>
Årsmodel: -<%=Recset("yearmodell")%><BR>
<%end if%>
Pris: <%=Recset("price")%> kr<BR>
<%if Recset("km") <> "" then%>
Km: <%=Recset("km")%> Km<BR>
<%end if%>
Butiks nummer: <%=Recset("nr")%><BR><br>
<A HREF="javascript:Popup('tipAfriend.asp?motorcykel=<%=Recset("brand")%> <%=Recset("modell")%>&ID=<%=Recset("ID")%>','Tipsa','scrollbars=no,width=322,height=160,top=100,left=220')">
Tipsa en vän!
</a>
</div>
<%
Recset.Close
Connect.Close
%>
</div>
<div class="push"></div>
</div>
<div id="bottom"><a href="administration/index.asp"><img src="Image/adminkey.gif" border="0" alt="ENDAST PERSONAL"></a></div>
</div>
</body>
</html>
Alltså. I första inlägget skriver du: "koden jag har skrivit hittills är:"
Du skriver ju så rörig kod att det bara är jag som orkar svara. Du ser. Ingen annan orkar svara...
Nu skriver du att det inte är din kod!?
Om du ber om hjälp skadar det inte att du är tydlig. Dels med tydlig kod, dels är tydlig med exakt vad det är som inte fungerar och vad som du vill ha hjälp med.
***
Tips:
Arbeta inte med allt på en gång. Gör en vanlig sida, i vanlig html, med javascript som du senare byter ut saker som är olika för varje sida.
Du gör ju allt så himla krångligt!
Även om någon annan har skrivit "SELECT stjärna..." så kan väl du skriva ut de saker du vill fråga efter och göra koden snygg och fin och där med lätt att arbeta med.
Att skylla i från sig... och att skylla på andra... är att göra det lätt för sig.
Eller bara förutsätter du att folk vill hjälpa dig!? Ja... Inte kan jag hindra dig!
jag har sagt att jag inte är duktig vad gäller både asp och javascript... då jag skrev:koden jag har skrivit hittills är:
då skrev jag bara med den koden jag själv hade skrivit dit, den koden jag arbetar med. det kanske är lätt för dig att säga att jag ska snygga till det, att jag skriver uruselt osv. men du har hur mycket mer erfarenhet som helst än vad jag har. jag försöker göra mitt bästa med de få kunskaperna jag har, ursäkta mig då att det inte når upp till er andras standard. ja, jag ska försöka snygga till koden.
Det var inte meningen att skapa irritation, om det inte är någon som vill hjälpa mig för att min kod är dåligt skriven så är det väl inget mer med det. jag löser det nog ändå någon gång...
Nu har jag försökt snygga tilll koden så mycket jag kan. hoppas det är mer lättläsligt och bättre gjort den här gången!
Kod:
<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<!--#include file="connect.asp" -->
<head>
<title>Eurowheels</title>
<META NAME="keywords" CONTENT="mc, motorcyklar, fellingsbro, örebro, mctillbehör, skinnställ, allvädersställ">
<META NAME="description" CONTENT="Försäljning av motorcyklar och mc-tillbehör i fellingsbro, 3 mil utanför örebro">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
<SCRIPT language="javascript">
function Popup(url,id,options){
window.open(url,id,options);
}
</SCRIPT>
</head>
<body>
<div id="wrap">
<div id="head"></div>
<div id="main_wrap_vit">
<div id="main_left">
<!-- #include FILE="meny.asp" -->
</div>
<div id="main_middle">
<%
sel = "SELECT * FROM motorcyklar WHERE ID =" & cint(Request.QueryString("ID"))
sel2 = "SELECT * FROM kredit WHERE ID = 1"
set rs = connect.Execute(sel2)
set Recset = connect.Execute(sel)
brand = Recset("brand")
model = Recset("modell")
yearmodel = Recset("yearmodell")
regdate = Recset("Datum")
image = Recset("image")
imageWidth = Recset("imageWidth")
imageHeight = Recset("imageHeight")
description = Recset("besk")
interest = rs("kreditrenta")
price = Recset("price")
km = Recset("km")
number = Recset("nr")
ID = Recset("ID")
rs.Close
Recset.Close
Connect.Close
%>
<B><%=brand%> <%=model%> -<%=yearmodel%> <%If (DateDiff("d", regdate, Date)) < 20 Then %><FONT COLOR="RED"><B>Nytt!</B></FONT><%End If%></B>
<br>
<br>
<%
'-- Räknar ut höjen på bilden då den ska vara 350pixlar bred ----
if imageWidth <> "" and imageHeight <> "" then
HEIGHT = (350 / cstr(imageWidth) * cstr(imageHeight))
WIDTH = 350
end if
%>
<A HREF="javascript:Popup('bild.asp?Bild=<%=image%>&width=<%=imageWidth%>&height=<%=imageHeight%>','photo','scrollbars=no,width=<%=imageWidth%>,height=<%=imageHeight%>,top=40,left=60')">
<IMG SRC="administration/editMC/imageup/<%=image%>" onerror="this.src='admin/ImageMC/noimage.jpg'" BORDER="0" WIDTH="<%=WIDTH%>" HEIGHT="<%=HEIGHT%>"></A>
<br>
<br>
<%=besk%> <!-- skriver ut en kort beskrivning av motorcykeln -->
<br>
<br>
Möjlighet till finansiering finns via Wasa Kredit AB
<br>
<!-- Här börjar funktionen för att räkna ut månadskostnaden vid kreditköp -->
<script type="text/javascript">
function berakningen()
{
var reknapris;
var renta = <%=interest%>;
var avbetalspris;
var priset = <%=price%>;
reknapris = priset*0.2;
avbetalspris = (reknapris/12)+((reknapris/12)*renta);
document.write(avbetalspris);
}
</script>
<!-- här är funktionen slut -->
<-!--
<table>
<form onsubmit="berakningen()">
<tr><td>Pris:</td> <td> <input type="text" name="pris" value="<%=price%>" /> kr</td></tr>
<tr><td>Kontantinsats: </td> <td><input type="text" name="kontantinsats" value="" /> kr</td></tr>
<tr><td>Räntesats:</td> <td> <input type="text" name="rentesats" value="" /></td></tr>
<tr>
<td>Antal Månader:</td>
<td> <select name="monader">
<option SELECTED value="12">12</option><option value="13">13</option><option value="14">14</option>
<option value="15">15</option><option value="16">16</option><option value="17">17</option>
<option value="18">18</option><option value="19">19</option><option value="20">20</option>
<option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option>
<option value="27">27</option><option value="28">28</option><option value="29">29</option>
<option value="30">30</option><option value="31">31</option><option value="32">32</option>
<option value="33">33</option><option value="34">34</option><option value="35">35</option>
<option value="36">36</option><option value="37">37</option><option value="38">38</option>
<option value="39">39</option><option value="40">40</option><option value="41">41</option>
<option value="42">42</option><option value="43">43</option><option value="44">44</option>
<option value="45">45</option><option value="46">46</option><option value="47">47</option>
<option value="48">48</option><option value="49">49</option><option value="50">50</option>
<option value="51">51</option><option value="52">52</option><option value="53">53</option>
<option value="54">54</option><option value="55">55</option><option value="56">56</option>
<option value="57">57</option><option value="58">58</option><option value="59">59</option>
<option value="60">60</option>
</select></td></tr>
<tr><td><input type="submit" /></td></tr>
</form>
<tr><td>Månadskostnad: </td> <td><script type="text/javascript">document.write(avbetalspris);</script></td></tr>
</table> --!>
<br>
<img src="Image/wasakreditloggo.gif">
<br>
<br>
<b>Öppettider</b><br>
<table cellspacing="0" cellpadding="4" border="0">
<tr><td CLASS="rubrik" width="150"><IMG SRC="image/Arrow.gif" BORDER="0">Måndagar</td><td CLASS="rubrik">10:00 - 17:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Tisdagar</td><td CLASS="rubrik">10:00 - 19:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Onsdagar</td><td CLASS="rubrik">10:00 - 17:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Torsdagar</td><td CLASS="rubrik">10:00 - 19:00</td></tr>
<tr><td CLASS="rubrik"><IMG SRC="image/Arrow.gif" BORDER="0">Fredagar, Lördagar</td><td CLASS="rubrik">10:00 - 16:00</td></tr>
</table>
</div>
<div id="main_right">
<br>
<br>
<div align="left">
<%=brand%> <%=model%>
<BR>
<%if yearmodel <> "" then%>
Årsmodell: -<%=yearmodel%>
<%end if%>
<BR>
Pris: <%=price%> kr
<BR>
<%if km <> "" then%>
Mätarställning: <%=km%> Km<BR>
<%end if%>
Butiksnummer: <%=number%>
<BR>
<BR>
<A HREF="javascript:Popup('tipAfriend.asp?motorcykel=<%=brand%> <%=model%>&ID=<%=ID%>','Tipsa','scrollbars=no,width=322,height=160,top=100,left=220')">
Tipsa en vän!</a>
</div>
</div>
<div class="push"></div>
</div>
<div id="bottom"><a href="administration/index.asp"><img src="Image/adminkey.gif" border="0" alt="ENDAST PERSONAL"></a></div>
</div>
</body>
</html>
jag har dock inte gjort någonting åt SELECT-satsen, men jag ska försöka göra det idag. Det jag behöver hjälp med är att skriva en fungerande funktion för att räkna ut månadskostnaden vid kreditköp. matten kan jag fixa själv, det jag först vill få att fungera är en enkel uträkning som sedan visas på skärmen genom att t.ex. klicka på en submit-knapp.
SQL1 = SELECT mc.brand, mc.modell FROM motorcyklar mc WHERE mc.ID = XX
set rs = Connect.Execute(SQL1)
brand = rs(0)
modell = rs(1)
***
Det blir en enkel array av de där värdena. Första är noll, andra ett, tredje 2 osv.
Nu skriver du ihop de där två frågorna till EN fråga.
SQL1 = SELECT mc.brand, mc.modell, k.kreditrenta FROM motorcyklar mc, kredit k WHERE mc.ID = XX AND k.ID = 1
set rs = Connect.Execute(SQL1)
brand = rs(0)
modell = rs(1)
interest = rs(2)
Så här kan du skriva. Det skulle bli både snyggt och vackert för dig och alla andra och titta på. Testa denna variant!
genom att skriva motorcykel mc gör att du sen kan skriva mc.ID, mc.Pris, mc.Färg...
Samma sak som:
SELECT u.intID, u.strName FROM users u
SELECT users.intID, users.strName FROM users
Dessa förkortningar är ruggigt praktiska. Men givetvis används dom inte på bara två fält från samma tabell som exemplet ovan. Men principen är den jag visar!
tack för hjälpen! jag har fixat det sista du skrev, och funktionen för att räkna ut månadskostnaden funkar den också. nu är det istället en ny sak jag inte får i ordning på ordentligt. Jag har skapat en sida som man bara kommer åt genom att logga in, och där kan man ändra räntan på uträkningen... problemet är att man måste skriva in samma ränta två gånger innan den sparas. är det någon som har lust att kolla och se vad som kan vara fel?
detta är alltså en ny sida, och har inget med den första att göra.
kod:
<%
sel = "SELECT k.kreditrenta FROM kredit k WHERE k.ID = 1"
set rs = connect.Execute(sel)
%>
<form name="renta" method="get" onSubmit="redirect()">
<table>
<tr>
<td>Nuvarande Ränta:
<input type="text" name="kreditgammal" value="<%=rs(0)%>" readonly="readonly" />
</td>
<td>
Ny Ränta:
<input type="text" name="kreditny" value="" /><br />
<font size="1">använd .(punkt) inte ,(komma)</font>
</td>
</tr>
<tr>
<td>
<input type="submit" value="spara" />
</td>
</tr>
</table>
</form>
<script>
function redirect()
{
location.href="edit.asp?ToDo=spara&nykredit=<%=Request.querystring("kreditny")%>";
}
</script>
<%
if Request.QueryString("ToDo") = "spara" AND request.querystring("nykredit") <> "" then
sql = "update kredit set kreditrenta='" & request.querystring("nykredit") & "' WHERE ID = 1"
connect.Execute(sql)
END If
%>
kan problemet vara för att jag inte stänger databasen? eller har det att göra med att fösta gången skickas infon med, men sparas inte förrän man kör den igen? ursäkta om jag beskriver dåligt, jag har lite svårt att bilda mig en uppfattning av vad som är det bästa sättet att göra det här på.
ingen som kan hjälpa mig? Det måste ju vara något enkelt problem, jag har ju inte skrivit så mycket kod... jag har fortfarande inte kommit på en lösning.
Tack för hjälpen! det funkar fint nu :) angående sql injection så vet jag inte riktigt hur man gör det säkrare... jag skickar med koden så man kan se:
<%
sel = "SELECT k.kreditrenta FROM kredit k WHERE k.ID = 1"
set rs = connect.Execute(sel)
dim todo, kredit
todo=Request.Querystring("ToDo")
kredit=Request.Querystring("kreditny")
if todo = "spara" AND kredit <> "" then
sql = "update kredit set kreditrenta='" & kredit & "' WHERE ID = 1"
connect.Execute(sql)
END If
%>
<form name="renta" method="get" action="edit.asp">
<input type="hidden" name="ToDo" value="spara" />
<table>
<tr>
<td>Nuvarande Ränta:
<input type="text" name="kreditgammal" value="<%=rs(0)%>" readonly="readonly" />
</td>
<td>
Ny Ränta:
<input type="text" name="kreditny" value="" /><br />
<font size="1">använd .(punkt) inte ,(komma)</font>
</td>
</tr>
<tr>
<td>
<input type="submit" value="spara" />
</td>
</tr>
</table>
</form>
jag ska ta och googla lite också och se om jag kan hitta lite själv :) men tveka inte att ge mig tips!