Avatar billede dkkarpen Nybegynder
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?
Avatar billede tdaugaard Nybegynder
14. december 2000 - 20:33 #1
if len(request.form(\"felt\")) > 0 then
felt = 0
else
felt = request.form(\"felt\")
end if
Avatar billede dkkarpen Nybegynder
14. december 2000 - 20:34 #2
Som jeg skrev det har jeg prøvet uden held...
Avatar billede tdaugaard Nybegynder
14. december 2000 - 20:35 #3
*s* så langt læste jeg vist ikke .

IsNull(Request.Form(\"felt\")) da ?
Avatar billede tdaugaard Nybegynder
14. december 2000 - 20:35 #4
men det er altså også dumt at du bruger <> \"\" for at teste om det er \"\"... det er ligemodsat ...
Avatar billede tdaugaard Nybegynder
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 ..!?
Avatar billede dkkarpen Nybegynder
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.
Avatar billede dkkarpen Nybegynder
14. december 2000 - 20:39 #7
Har det noget med mit input felt at gøre?
Avatar billede kasseper Nybegynder
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

Avatar billede tdaugaard Nybegynder
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() ?
Avatar billede dkkarpen Nybegynder
14. december 2000 - 20:43 #10
Men det gør det ikke...
Avatar billede kasseper Nybegynder
14. december 2000 - 20:44 #11
Må vi se din kode ?
Avatar billede tdaugaard Nybegynder
14. december 2000 - 20:47 #12
dkkarpen:> som kasseper siger, og har du desuden prøver med IsEmpty ?
Avatar billede kasseper Nybegynder
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.
Avatar billede tdaugaard Nybegynder
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.
Avatar billede dkkarpen Nybegynder
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\")
%>
Avatar billede tdaugaard Nybegynder
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\")
%>
Avatar billede dkkarpen Nybegynder
14. december 2000 - 21:53 #17
Ok tak ;-)
Avatar billede tdaugaard Nybegynder
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 ...
Avatar billede dkkarpen Nybegynder
14. december 2000 - 21:55 #19
Ja men det er i en include fil der ikke er medtaget her.
Avatar billede dkkarpen Nybegynder
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...

Avatar billede dkkarpen Nybegynder
14. december 2000 - 21:59 #21
Jeg rettede fejlen inden jeg postede her. Så i kunne ikke se den. Beklager ;-(
Avatar billede tdaugaard Nybegynder
14. december 2000 - 21:59 #22
*tsk* *tsk .. den var slem! Det er nu folk vil anbefale dig en Option Explicit ..
Avatar billede dkkarpen Nybegynder
14. december 2000 - 22:00 #23
tdaugaard>>Lav et svar så får du points
Avatar billede dkkarpen Nybegynder
14. december 2000 - 22:01 #24
Ja ja ;-)
Avatar billede tdaugaard Nybegynder
14. december 2000 - 22:01 #25
et svar :-)
kasseper skal også have 15 synes jeg ..
Avatar billede tdaugaard Nybegynder
14. december 2000 - 22:02 #26
hvis han vil se\'følig :-)
Avatar billede dkkarpen Nybegynder
14. december 2000 - 22:03 #27
ok kasseper svarer du lige
Avatar billede kasseper Nybegynder
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..
Avatar billede kasseper Nybegynder
14. december 2000 - 23:27 #29
og Sorry guys, for at jeg var væk, sidder og knokler i et stort DB project..;-)
Avatar billede dkkarpen Nybegynder
14. december 2000 - 23:30 #30
Hvad vil du så ha\' kasper?
Avatar billede kasseper Nybegynder
14. december 2000 - 23:40 #31
En god jul og ingen point for dette spørgsmål
Og en go jul til jer oxo...;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester