14. december 2000 - 20:32
Der er
30 kommentarer og 1 løsning
Problem med nulværdier i form
Halløj Jeg er stødt ind i et noget mærkeligt problem synes jeg. Hvis jeg laver en request.form(\"\") på et form felt der er tomt så er det ikke muligt for mig at at bestemme at det tom ved f.eks. følgende if sætning: if request.form(\"felt\") <> \"\" then felt = 0 else felt = request.form(\"felt\") end if Det har jeg da altid gjort men nu skere der ikke noget. Det er som sætningen fuldstændig ignoreres. Jeg har prøvet med trim og len, men stadig uden held. Mit form felt ser således ud: <input type=text name=udbetaling size=15 value=\"<% if Request.QueryString(\"udbetaling\") <> \"\" then Response.Write Request.QueryString(\"udbetaling\") end if %>\"> Hvad går galt? Og hvordan løser jeg det?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
14. december 2000 - 20:33
#1
if len(request.form(\"felt\")) > 0 then felt = 0 else felt = request.form(\"felt\") end if
14. december 2000 - 20:34
#2
Som jeg skrev det har jeg prøvet uden held...
14. december 2000 - 20:35
#3
*s* så langt læste jeg vist ikke . IsNull(Request.Form(\"felt\")) da ?
14. december 2000 - 20:35
#4
men det er altså også dumt at du bruger <> \"\" for at teste om det er \"\"... det er ligemodsat ...
14. december 2000 - 20:38
#5
din kode: if request.form(\"felt\") <> \"\" then felt = 0 else felt = request.form(\"felt\") end if SKAL gøre flg. hvis feltet fra formen er mindre eller større end \"\" så sæt felt til nul ellers sæt felt til den værdi som vi fik fra formen slut hvis ikke ? det lyder umiddelbart ulogisk ..!?
14. december 2000 - 20:39
#6
Du har ret det var det modsatte jeg mente (min kode er ikke som skrevet her). Men det virker stadig ikke.
14. december 2000 - 20:39
#7
Har det noget med mit input felt at gøre?
14. december 2000 - 20:41
#8
IsNull som tdaugaard siger skulle gerne virke.... if IsNull(request.form(\"felt\")) then felt = 0 else felt = request.form(\"felt\") end if
14. december 2000 - 20:42
#9
har du også prøvet med Len() på flg. ? <input type=text name=udbetaling size=15 value=\"<% if Request.QueryString(\"udbetaling\") <> \"\" then Response.Write Request.QueryString(\"udbetaling\") end if %>\"> forøvrigt behøver du ikke nogen End If da det er en single-line If..Then du bruger, men det har ingen betydning.. jeg ville nok bruge: <% If Len(Request(\"udbetaling\")) > 0 Then Response.Write Request(\"udbetaling\") %> men det kan du jo ikke bruge vhis du har forsøgt med Len .. men hvad med IsNull() eller IsEmpty() ?
14. december 2000 - 20:43
#10
Men det gør det ikke...
14. december 2000 - 20:44
#11
Må vi se din kode ?
14. december 2000 - 20:47
#12
dkkarpen:> som kasseper siger, og har du desuden prøver med IsEmpty ?
14. december 2000 - 20:48
#13
Det er pr. definition sådan at hvis et formfelt er tomt og der submittes, vil et request.form(\"felt\") give en null værdi, så der må være noget andet galt...Vi bliver nok nød til at se hele koden.
14. december 2000 - 20:54
#14
Egentlig så SKAL If Len(noget) > 0 Then virke for hvis variablen indeholder noget så vil Len ALTID virke.
14. december 2000 - 21:40
#15
Ok Først form siden: <% Set Conn = Server.CreateObject(\"ADODB.Connection\") SQL = \"SELECT * FROM boliger where ( boligid = \" & Request.QueryString(\"boligid\") & \")\" Conn.Open strConn Set rs = Conn.Execute(SQL) driftsform = rs(\"driftsform\") kontantpris = rs(\"kontantpris\") udbetaling = rs(\"udbetaling\") grundareal = rs(\"grundareal\") boligareal = rs(\"boligareal\") driftsbygning = rs(\"driftsbygning\") postnummer = rs(\"postnummer\") city = rs(\"city\") maegler = rs(\"maegler\") beskrivelse = rs(\"boligbeskrivelse\") amt = rs(\"amt\") billede = rs(\"billede\") billede2 = rs(\"billede2\") billede3 = rs(\"billede3\") Conn.Close Set Conn = Nothing %> <table> <form method=post action=brugere.asp?mode=annoncer_rediger_process id=form2 name=form2> <input type=hidden name=boligid value=\"<%= Request.QueryString (\"boligid\") %>\"> <% if Request.querystring(\"error\") <> \"\" then Response.Write \"<tr><td colspan=2><font color=red>\" & Request.querystring(\"error\") & \"</font></td></tr>\" end if %> <tr> <td>Driftsform:</td> <td> <select name=driftsform> <option selected><%= driftsform %></option> <% Set Conn = Server.CreateObject(\"ADODB.Connection\") SQL = \"SELECT * FROM driftsformer where driftsform <> \'\" & driftsform & \"\'\" Conn.Open strConn Set rs = Conn.Execute(SQL) Do while not rs.EOF Response.Write \"<option>\" & rs(\"driftsform\") & \"</option>\" rs.MoveNext loop Conn.Close Set Conn = Nothing %> </select> </td> </tr> <tr> <td>Kontantpris:</td> <td><input type=text name=kontantpris size=15 value=\"<% if Request.QueryString(\"kontantpris\") <> \"\" then Response.Write Request.QueryString(\"kontantpris\") else Response.write kontantpris end if %>\"> kr. *</td> </tr> <tr> <td>Udbetaling:</td> <td><input type=text name=udbetaling size=15 value=\"<% if Request.QueryString(\"udbetaling\") <> \"\" then Response.Write Request.QueryString(\"udbetaling\") else Response.write udbetaling end if %>\"> kr. </td> </tr> <tr> <td>Grundareal:</td> <td><input type=text name=grundareal size=15 value=\"<% if Request.QueryString(\"grundareal\") <> \"\" then Response.Write Request.QueryString(\"grundareal\") else Response.write grundareal end if %>\"> ha *</td> </tr> <tr> <td>Boligareal:</td> <td><input type=text name=boligareal size=15 value=\"<% if Request.QueryString(\"boligareal\") <> \"\" then Response.Write Request.QueryString(\"boligareal\") else Response.write boligareal end if %>\"> m<sup>2</sup> *</td> </tr> <tr> <td>Driftsbygning:</td> <td><input type=text name=driftsbygning size=15 value=\"<% if Request.QueryString(\"driftsbygning\") <> \"\" then Response.Write Request.QueryString(\"driftsbygning\") else Response.write driftsbygning end if %>\"> m<sup>2</sup></td> </tr> <tr> <td>Amt:</td> <td> <select name=amt> <option selected><% if Request.QueryString(\"amt\") <> \"\" then Response.Write Request.QueryString(\"amt\") else Response.Write amt %></option> <option>Bornholms Amt</option> <option>Frederiksborg Amt</option> <option>Fyns Amt</option> <option>Københavns Amt</option> <option>Nordjyllands Amt</option> <option>Ribe Amt</option> <option>Ringkøbing Amt</option> <option>Roskilde Amt</option> <option>Storstrøms Amt</option> <option>Sønderjyllands Amt</option> <option>Vejle Amt</option> <option>Vestsjællands Amt</option> <option>Viborg Amt</option> <option>Århus Amt</option> *</td> </tr> <tr> <td>Postnummer:</td> <td><input type=text name=postnummer size=6 value=\"<% if Request.QueryString(\"postnummer\") <> \"\" then Response.Write Request.QueryString(\"postnummer\") else Response.write postnummer end if %>\"> *</td> </tr> <tr> <td>By:</td> <td><input type=text name=city size=30 value=\"<% if Request.QueryString(\"city\") <> \"\" then Response.Write Request.QueryString(\"city\") else Response.write city end if %>\"> *</td> </tr> <tr> <td>Mægler</td> <td><input type=text name=maegler size=30 value=\"<% if Request.QueryString(\"maegler\") <> \"\" then Response.Write Request.QueryString(\"maegler\") else Response.write maegler end if %>\"></td> </tr> <tr> <td colspan=2>Beskrivelse:<br> <textarea cols=50 rows=7 name=beskrivelse><% if Request.QueryString(\"beskrivelse\") <> \"\" then Response.Write Request.QueryString(\"beskrivelse\") else Response.write beskrivelse end if %></textarea> </td> </tr> <tr> <td colspan=2><input type=submit value=Opdater name=opdater></td> </tr> </form> </table> Og nu su siden der opdaterer databasen: <% boligid = Request.Form(\"boligid\") driftsform = Request.Form(\"driftsform\") kontantpris = replace(Request.Form(\"kontantpris\"),\".\",\"\") if len(Request.Form(\"udbetaling\")) < 1 then udbetaling = 0 else udbetaling = replace(Request.Form(\"udbetaling\"),\".\",\"\") end if grundareal = Request.Form(\"grundareal\") boligareal = Request.Form(\"boligareal\") driftsbygning = Request.Form(\"driftsbygning\") amt = Request.Form(\"amt\") postnummer = Request.Form(\"postnummer\") city = Request.Form(\"city\") maegler = Request.Form(\"maegler\") beskrivelse = Request.Form(\"beskrivelse\") billede = Request.Form(\"billede\") billede2 = Request.Form(\"billede2\") billede3 = Request.Form(\"billede3\") if len(kontantpris) < 1 then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Du skal indtaste en kontantpris!\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if if len(grundareal) < 1 then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Du skal indtaste grundarealet\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if if len(boligareal) < 1 then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Du skal indtaste boligarealet\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if if amt = \"Vælg amt\" then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Du skal vælge et amt!\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if if len(postnummer) <> 4 then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Der er fejl i postnummeret!\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if if len(city) < 1 then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Du skal indtaste et bynavn\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if if len(beskrivelse) < 1 then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(\"Du skal lave en beskrivelse af ejendommen\") & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) end if Set Conn = Server.CreateObject(\"ADODB.Connection\") SQL = \"Update boliger set driftsform = \'\"&driftsform&\"\', kontantpris = \'\"&kontantpris&\"\', udbetaling = \'\"&udbetaling&\"\', grundareal = \'\"&grundareal&\"\', boligareal = \'\"&boligareal&\"\', driftsbygning = \'\"&driftsbygning&\"\', amt = \'\"&amt&\"\', postnummer = \'\"&postnummer&\"\', city = \'\"&city&\"\', maegler = \'\"&maegler&\"\', boligbeskrivelse = \'\"&beskrivelse&\"\' where boligid=\" & boligid Conn.open strConn Response.Write sql Conn.execute (SQL) Conn.close Set Conn = nothing Response.Redirect (\"brugere.asp?mode=annoncer\") %>
14. december 2000 - 21:51
#16
Til at starte med synes jeg ud skal erstatte din side der opdatere databasen med flg: Du har ALT for megen spild plads med dine If\'s og du bruger helt unødvendigt End If. Det her er en start til at finde problemet, når ikke der er så meget at gå igennem. <% boligid = Request.Form(\"boligid\") driftsform = Request.Form(\"driftsform\") kontantpris = replace(Request.Form(\"kontantpris\"),\".\",\"\") Select Case Len(Request.Form(\"udbetaling\")) = 0 Case True: udbetaling = 0 Case False: udbetaling = Replace(Request.Form(\"udbetaling\"), \".\", \"\") End Select grundareal = Request.Form(\"grundareal\") boligareal = Request.Form(\"boligareal\") driftsbygning = Request.Form(\"driftsbygning\") amt = Request.Form(\"amt\") postnummer = Request.Form(\"postnummer\") city = Request.Form(\"city\") maegler = Request.Form(\"maegler\") beskrivelse = Request.Form(\"beskrivelse\") billede = Request.Form(\"billede\") billede2 = Request.Form(\"billede2\") billede3 = Request.Form(\"billede3\") If Len(kontantpris) = 0 Then strError = \"Du skal indtaste en kontantpris!\" If Len(grundareal) = 0 Then strError = \"Du skal indtaste grundarealet\" If Len(boligareal) = 0 Then strError = \"Du skal indtaste boligarealet\" If amt = \"Vælg amt\" Then strError = \"Du skal vælge et amt!\" If Len(postnummer) <> 4 Then strError = \"Der er fejl i postnummeret!\" If Len(city) = 0 Then strError = \"Du skal indtaste et bynavn\" If Len(beskrivelse) = 0 Then strError = \"Du skal lave en beskrivelse af ejendommen\" If Len(strError) > 0 Then Response.Redirect(\"brugere.asp?mode=opret_annonce_1&error=\" & server.URLEncode(strError) & \"&kontantpris=\" & kontantpris & \"&udbetaling=\" & udbetaling & \"&grundareal=\" & grundareal & \"&boligareal=\" & boligareal & \"&driftsbygning=\" & driftsbygning & \"&amt=\" & server.URLEncode(amt) & \"&postnummer=\" & postnummer & \"&city=\" & city & \"&maegler=\" & maegler & \"&beskrivelse=\" & server.URLEncode(beskrivelse) & \"&brugerid=\" & session(\"brugerid\") & \"&billede=\" & billede & \"&billede2=\" & billede2 & \"&billede3=\" & billede3) Set Conn = Server.CreateObject(\"ADODB.Connection\") SQL = \"Update boliger set driftsform = \'\"&driftsform&\"\', kontantpris = \'\"&kontantpris&\"\', udbetaling = \'\"&udbetaling&\"\', grundareal = \'\"&grundareal&\"\', boligareal = \'\"&boligareal&\"\', driftsbygning = \'\"&driftsbygning&\"\', amt = \'\"&amt&\"\', postnummer = \'\"&postnummer&\"\', city = \'\"&city&\"\', maegler = \'\"&maegler&\"\', boligbeskrivelse = \'\"&beskrivelse&\"\' where boligid=\" & boligid Conn.open strConn Response.Write sql Conn.execute (SQL) Conn.close Set Conn = nothing Response.Redirect (\"brugere.asp?mode=annoncer\") %>
14. december 2000 - 21:53
#17
Ok tak ;-)
14. december 2000 - 21:54
#18
For det andet så kan jeg ikke rigtigt se hvor du har din forbindelse til databasen ? Du mangler da noget \"DRIVER={Microsoft Access Driver (*.mdb); DBQ=\" & Server.MapPath(\"dindb.mdb\") stuff ...
14. december 2000 - 21:55
#19
Ja men det er i en include fil der ikke er medtaget her.
14. december 2000 - 21:58
#20
Ok det viste sig at være en grum fejl 40. Det var en stavefejl i en variabel der kiksede...
14. december 2000 - 21:59
#21
Jeg rettede fejlen inden jeg postede her. Så i kunne ikke se den. Beklager ;-(
14. december 2000 - 21:59
#22
*tsk* *tsk .. den var slem! Det er nu folk vil anbefale dig en Option Explicit ..
14. december 2000 - 22:00
#23
tdaugaard>>Lav et svar så får du points
14. december 2000 - 22:01
#24
Ja ja ;-)
14. december 2000 - 22:01
#25
et svar :-) kasseper skal også have 15 synes jeg ..
14. december 2000 - 22:02
#26
hvis han vil se\'følig :-)
14. december 2000 - 22:03
#27
ok kasseper svarer du lige
14. december 2000 - 23:27
#28
Nej, det gør jeg ikke. Tdaugaard har da vist mere end fortjent 30 point for den omgang arbejde. Jeg ville da gerne have 15 point, for mit bidrag, men ikke hvis tdaugaard også får 15..
14. december 2000 - 23:27
#29
og Sorry guys, for at jeg var væk, sidder og knokler i et stort DB project..;-)
14. december 2000 - 23:30
#30
Hvad vil du så ha\' kasper?
14. december 2000 - 23:40
#31
En god jul og ingen point for dette spørgsmål Og en go jul til jer oxo...;-)
Kurser inden for grundlæggende programmering