webForumDet fria alternativet

inkompatibla typer cInt

ASPur ASP

9 svar · 492 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

Hmmm..... Hej!

Varför fungerar:

<% if Request.form("supplier") = objRS("supplierId") then response.write "selected" %>

men inte:

<% if cInt(Request.form("supplier")) = cInt(objRS("supplierId")) then response.write "selected" %>

Som ger felmeddelandet:

Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'cInt'
/uppdragNu/addEnumber.asp, line 97

supplierId är lagrat som tal databasen och Request.form("supplier") kommer från formuläret...

Mvh
Henrik

The_HulkMedlem sedan juni 20031 837 inlägg
#2

Måste du inte ha dubbla likhetstecken?
i första exemplet

Request.form("supplier") = objRS("supplierId")

tilldelar du nog Request.form("supplier") värdet från objRS("supplierId")
vilket alltid kommer att bli sant
medans i andra exemplet

cInt(Request.form("supplier")) = cInt(objRS("supplierId"))

försöker du till delar värdet av cInt(Request.form("supplier")) värdet från cInt(objRS("supplierId")).
Kan inte garantera att det är så i ASP men i de flesta andra språken har det den betydelsen.
testa med

<% if cInt(Request.form("supplier")) =[b]=[/b] cInt(objRS("supplierId")) then response.write "selected" %>
devotionMedlem sedan jan. 20013 582 inlägg
#3

Hmmm...

Tror jag kommit på felet...

När jag inte har valt en leverantör i listan så är ju request.form("supplier") = "" Då blir det ju givetvis fel att använda cInt...

Ska försöka hitta ett sätt att hantera när request.Form("supplier") =""

Hur skulle man kunna hantera det???

Mvh
henrik

The_HulkMedlem sedan juni 20031 837 inlägg
#4

där är det ju bara att skriva

<% if Request.form("supplier") != '' && cInt(Request.form("supplier")) = cInt(objRS("supplierId")) then response.write "selected" %>
Erik JuhlinMedlem sedan maj 200010 687 inlägg
#5

The Hulk: VBScripts syntax ser inte ut så. Dessutom så skulle det inte funka även om man skriver rätt syntax eftersom att i VBScripts så körs alla villkor. Den hoppar alltså inte ur när första villkoret är falskt.

@ndersMedlem sedan juni 200032 969 inlägg
#6

The Hulk, förvirra inte folk.

I ASP (VBScript / VB-besläktade språk) används inte ==, !=, && och ||.
Här används NOT, AND och OR, samt både tilldelning och jämförelser görs med ett likhetstecken.

Ska försöka hitta ett sätt att hantera när request.Form("supplier") =""

Hur skulle man kunna hantera det???

Antingen sätter du ett ogiltigt siffervärde (typ -1) i din <select>, eller så gör du en if-sats på serversidan;

if isnumeric(request.form("supplier") then
     ' weeee
end if
devotionMedlem sedan jan. 20013 582 inlägg
#7

Självklart!

Ska testa!

Tack så länge!

mvh

devotionMedlem sedan jan. 20013 582 inlägg
#8

tänk vad ett:

-1

kan göra!

Gjorde så här:

				  <select name="supplier" class="listMenu" id="supplier" onChange="if (this.selectedIndex > 0) this.form.submit();">
					<option value="[b]-1[/b]" selected="selected">--V&auml;lj leverant&ouml;r--</option>
					<% Do until ObjRS.EOF %>
					<option value="<% =objRS("supplierId")%>"<% if cInt(request.Form("supplier")) = cint(objRS("supplierId")) then response.write "selected" %>><% =objRS("supplierName")%></option> 
					<% objRS.Movenext %>
					<% Loop %>
				  </select>

istället för:

				  <select name="supplier" class="listMenu" id="supplier" onChange="if (this.selectedIndex > 0) this.form.submit();">
					<option value="" selected="selected">--V&auml;lj leverant&ouml;r--</option>
					<% Do until ObjRS.EOF %>
					<option value="<% =objRS("supplierId")%>"<% if cInt(request.Form("supplier")) = cint(objRS("supplierId")) then response.write "selected" %>><% =objRS("supplierName")%></option> 
					<% objRS.Movenext %>
					<% Loop %>
				  </select>

och det funkade fint...

Är det det bästa sättet, eller ska man lösa det med en if-sats?

Mvh
Henrik

@ndersMedlem sedan juni 200032 969 inlägg
#9

Well, det är nog hugget som stucket, men jag gillar enkla lösningar, och hade nog valt -1-varianten också. Enkelt och grejt. :)

devotionMedlem sedan jan. 20013 582 inlägg
#10

dåså!

//Henrik

135 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)