Just nu i M3-nätverket
Jump to content

frågor kring ASP,IIS och Dreamwever


M.Mever

Recommended Posts

tjabba. nu fungerar sidan iaf.

 

men på min index sida så har jag nu ett fält där man får skriva in ett tal, sen ett fält som är en lista där man får välja plus, minus ...osv frågan ä'r nu hur jag ska kunna plocka ut just + tecknet och skicka med det till ASP sidan.

såhär ser det ut i min html fil.

 

<form action="default.asp" method="post">
<input name="RÄKNA UT" type="submit" onclick="action" value="Beräkna" />


<center>
<input type= "text" name="tal1">
<label>
<select name="raknesatt2" id="raknesatt">
 <option value="+" selected="selected">PLUS</option>
 <option value="-">MINUS</option>
 <option value="/">DELAT MED</option>
 <option value="*">GÅNGER</option>
</select>
</label>

<input type= "text" name="tal2">

</center>

</form>

 

[inlägget ändrat 2008-02-07 19:05:13 av M.Mever]

Link to comment
Share on other sites

<%
operator=Request.Form("raknesatt2")
operand1=Request.Form("tal1")
operand2=Request.Form("tal2")

Execute("result=" & operand1 & operator & operand2)
Response.Write "Resultat:" & result
%>

 

Link to comment
Share on other sites

hej.

 

jag har ju en massa if och sen if else satser.....

 

nu har jag fått allt att fungera sånär som på en väldigt skum grej, som jag inte kan förstå varför.

 

så här ser koden ut. jag kan få allt att fungera utan +.

skriver jag in 3 och 4 och jag tar plus så blir det 34. men alla de övriga fungerar.

skulle jag gå in och ändra själva + tecknet inne i if satsen till ett gånger så gångrar den. vad är det för fel på

svar= tal1 + tal2 ???? varför adderar inte den?

 

tal1 = Request.Form("tal1")
tal2 = Request.Form("tal2")
raknesatt = Request.Form("raknesatt2")

if(raknesatt = "+") then
svar = tal1 + tal2
Response.write(svar)


ElseIf(raknesatt = "-") then
svar = tal1 - tal2
Response.write(svar)


ElseIf(raknesatt = "/") then
svar = tal1 / tal2
Response.write(svar)


ElseIf(raknesatt = "*") then
svar = tal1 * tal2
Response.write(svar)
end if

 

Link to comment
Share on other sites

Använd min kod så fungerar det. Varför köra en massa onödiga if-satser när du kan exekvera allt på en gång?

 

Men för att lösa din onödigt långa kod så använd följande:

tal1 = CLng(Request.Form("tal1"))
tal2 = CLng(Request.Form("tal2"))

 

Link to comment
Share on other sites

ok, vad betyder detta då?

CLng ?

varför fungerar inte + lixom, de andra fungerar ju.

 

 

konstigt som f-n

 

men tack för hjälpen.

 

Link to comment
Share on other sites

Det beror på att VBScript är ett scriptspråk som enbart har en datatyp, Variant, och variabler hanteras olika beroende på hur situationen tolkas. I det här fallet tolkas + som en strängsammansättare istället för en matematisk operator. För att den ska tolka detta rätt måste du ge variablerna rätt kontext och CLng ger dem kontexten att de ska behandlas som variabler av typen Long (som är ett 4-bytes tal i VBScript)

 

 

[inlägget ändrat 2008-02-07 19:58:53 av Anjuna Moon]

Link to comment
Share on other sites

Lite nyttiga länkar

 

Datatyper:

http://shurl.org/UBcts [log]http://msdn2.microsoft.com/en-us/library/9e7a57cf(VS.85).aspx[/log]

 

Konverteringsfunktioner:

http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#conversion

 

VBScript referens:

http://shurl.org/TTBEz [log]http://msdn2.microsoft.com/en-us/library/d1wf56tt(VS.85).aspx[/log]

 

Länkar editerade av moderator

(tyvärr fungerar Eforums länkhanterare fortfarande inte tillfredsställande)

 

[inlägget ändrat 2008-02-07 20:08:54 av Cluster]

Link to comment
Share on other sites

tackar.... ska kika på dessa...

 

en fråga till såhär på torsdagskvällen...

 

nu har jag ju två stycken filer, en html fil och en asp fil.

om jag vill att allt ska ske i samma fil.... hur ska man gå till väga då?

 

kan jag lägga in asp koden innanför body taggarna bara i html filen?

eller ska jag göra tvärtom och använda mig av asp filen?

 

jag vill då ha ett utseende som är något i stil med

tal1 + tal2 = svar

 

där man då skriver in talen och väljer räknesätt, där = skall vara FAST och där då svaret skall vara en tom ruta som sedan fylls i typ?

 

går detta att göra?

 

Link to comment
Share on other sites

Enklast är såklart att bara ha .asp-filändelse på alla filer (man vet kanske inte alltid i förväg när man vill ha server-side funktioner).

 

Och, som har nämnts ett par gånger tidigare i denna tråd, du _kan_ blanda html och vbscript "hur som helst" i en och sammma fil.

Det betyder ju inte att det är ett bar sätt, men man kan.

 

/Cluster

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

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Link to comment
Share on other sites

Lägga asp-koden på samma sida (asp-sida), någonstans innan du ska skriva ut resultatet.

Ändra action i form-taggen till att peka på sig själv (dvs. samma filnamn som koden ligger i)

Lägg en if-sats runt hela din asp-kod så att den bara körs om det finns giltiga värden att hämta:

If tal1<>"" och tal2<>"" Then
... resten av din asp-kod här

 Response.Write tal1 & raknesatt & tal2 & "=" & svar
End If

 

Link to comment
Share on other sites

halloj

jo, då har jag problem igen. va inte riktigt me där förrut .....

 

vet inte om ni kan köra min kod här men det borde la fungera, har allt i en fil nu. men jag vill lixom att de rutor som skapas efter att jag tryckt på beräkna, de ska ersätta de andra rutorna som jag har från början. nu är det två uppsättningar med rutor.

 

jag har försökt att på något sätt lägga in tal1 och tal2 m.m i den övre form. men får det inte att fungera.

kan man ha ngn if sats innan form som kollar på något sett att det finns inmatade värden och då gå vidare. vill som sagt ha skrivit ut tal1, +, tal2 sen = och sen svaret i de rutorna som finns från början typ. (inte i nya)

 

 

 

 

<body>



<form action="default.asp" method="post">


<center>
<input type= "text" name="tal1" size="3">
<label>
<select name="raknesatt2" id="raknesatt">
 <option value="+" selected="selected">PLUS</option>
 <option value="-">MINUS</option>
 <option value="/">DELAT MED</option>
 <option value="*">GÅNGER</option>
</select>
</label>

<input type= "text" name="tal2" size="3" >
=
<input type="text" name="svar" size="3" >

<p><input name="knapp" type="submit" onclick="action" value="Beräkna" />
<input name="knapp" type="submit" onclick="action" value="Rensa" /></p>

</center>
</form>







<%
Dim tal1
Dim tal2
Dim svar
Dim raknesatt


tal1 = CLng(Request.Form("tal1"))
tal2 = CLng(Request.Form("tal2"))
raknesatt = Request.Form("raknesatt2")




if(tal1<>"" & tal2<>"") then

if(raknesatt = "+") then
	svar = tal1 + tal2

	'Response.write "Resultatet blev:  " & (svar)


ElseIf(raknesatt = "-") then
	svar = tal1 - tal2
	'Response.write "Resultatet blev:  " & (svar)


ElseIf(raknesatt = "/") then
	svar = tal1 / tal2
	'Response.write "Resultatet blev:  " & (svar)


ElseIf(raknesatt = "*") then
	svar = tal1 * tal2
	'Response.write "Resultatet blev:  " & (svar)
end if

Response.write tal1 & " " & raknesatt & " " & tal2 & " = " & svar

end if


%>


<form action="default.asp" method="post">
<input  name="TAL1" type="text" value= <%= tal1 %> size="2"/>
<input  name="TAL1" type="text" value= <%= raknesatt %> size="2"/>
<input name="TAL1" type="text" value= <%= tal2 %> size="2"/>
=
<input name="TAL1" type="text" value= <%= svar %> size="2"/>
<p><input name="Ny utrakning" type="submit" onclick="action" value="Ny uträkning" /></p>
</form>


</body>

 

[inlägget ändrat 2008-02-07 23:09:01 av M.Mever]

Link to comment
Share on other sites

[...]och sen svaret i de rutorna som finns från början typ. (inte i nya)
Varför har du då skapat nya?

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit

Dim tal1, tal2, raknesatt, svar, strSel, strSelPlus, strSelMinus, strSelDiv, strSelMult

tal1 = CLng(Request.Form("tal1"))
tal2 = CLng(Request.Form("tal2"))
raknesatt = Request.Form("raknesatt")
strSel="selected"
strSelPlus=""
strSelMinus=""
strSelDiv=""
strSelMult=""

IF tal1<>"" AND tal2<>"" AND raknesatt<>"" THEN

  strSel=""

  SELECT Case raknesatt
     Case "Pl"
        svar = tal1 + tal2
        strSelPlus="selected"
     Case "Mi"
        svar = tal1 - tal2
        strSelMinus="selected"
     Case "Di"
        svar = tal1 / tal2
        strSelDiv="selected"
     Case "Mu"
        svar = tal1 * tal2
        strSelMult="selected"
  END SELECT
END IF
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Miniräknare</title>
</head>

<body>
<form action="?" method="post">
  <div style="text-align:center">
  <input type= "text" name="tal1" size="3" value="<%=tal1%>">
     <label>
        <select name="raknesatt" id="raknesatt">
           <option value=""<% =strSel %>>-- välj --</option>
           <option value="Pl"<% =strSelPlus %>>PLUS</option>
           <option value="Mi"<% =strSelMinus %>>MINUS</option>
           <option value="Di"<% =strSelDiv %>>DELAT MED</option>
           <option value="Mu"<% =strSelMult %>>GÅNGER</option>
     </select>
     </label>
     <input type= "text" name="tal2" size="3" value="<%=tal2%>"> = <input type="text" name="svar" size="3" value="<%=svar%>">
     <p>
        <input name="knapp" type="submit" value="Beräkna" />
        <input name="knapp" type="reset" value="Rensa" />
     </p>
  </div>
</form>
</body>
</html>

 

/Cluster

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

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Link to comment
Share on other sites

hej.

 

nu har jag ett problem kvar. och det är säker inmatning

 

alltså om användaren skulle få för sig att skriva in bokstäver och sen trycka på beräkna......

 

som det är nu blir det kaiko direkt.

har försökt att testa typen på tal1 och tal2 med VarType(tal1) men det fungerar inte.

 

någon som har ngt tips. har inte hittat ngt på nätet heller..

 

Link to comment
Share on other sites

Precis innanför den yttre if-satsen lägger du till en till if-sats, enligt:

IF tal1<>"" AND tal2<>"" AND raknesatt<>"" THEN
  If IsNumeric(tal1) AND IsNumeric(tal2) Then
     ' --- övrig kod
  End If
End If

 

Link to comment
Share on other sites

japp, det löste naturligtvis problemet.

 

alla dessa smarta funktioner? finns de ngnstans? där man alltså kan slå upp dem? och läsa om vad de gör och returnerar osv.??

 

 

tack så mkt

 

/Mever

 

Link to comment
Share on other sites

alla dessa smarta funktioner? finns de ngnstans? där man alltså kan slå upp dem?

Både jag och Anjuna har länkat till MS vbscript reference:

http://msdn2.microsoft.com/en-us/library/d1wf56tt.aspx

 

[edit:] Hur jag än gör så verkar svaret hamna ovanför det inlägg jag svarar på... mycket märkligt...

 

/Cluster

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

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

 

 

[inlägget ändrat 2008-02-08 14:36:47 av Cluster]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...