webForumDet fria alternativet

kod för att hämta ur tomt fält

ASP

16 svar · 356 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Hej!
Kodar på ett community, och har skitit i att man ska behöva fylla i en massa jobbiga uppgifter när man reggar.
Utan när man väl är medlem kan man få ändra uppgifter om man vill.
och har då skapat en sida med lite textfält där den ska skriva ut vad som finns i databasen, men jag använder mig av denna kod:

<input type="text" name="age" value="<%=RecSet("age")%>" size="20">

Men eftersom man inte skrev in något när man reggade så finns ju inget i databasen, så hur ska jag skriva för att den tex skriver ut: "Ej angivet" om man tidigare inte ställt in det..?

Dålig på förklara men ni fattar nog

tack på förhand

Medlem sedan okt. 2002257 inlägg
#2

Jag skulle nog ha gjort:

<%
age = RecSet("age")
if age <> "" then
 age = age
else
 age = "Ej angivet"
end if
%>
<input type="text" name="age" value="<%=age%>" size="20">

Finns säkert nån med nåt bättre förslag.

Medlem sedan juni 20012 236 inlägg
#3

...det här är liksom grundtanken...

<%
IF RecSet("age")="" OR IsNULL(RecSet("age")) then
'------ Om faltet ar tomt sa gor si...
	response.write "Inget har!"
	'response.write "<input type=""text"" name=""age"" value=""Du har ju inte skrivit nat har jueeee!"" size=""20"">"
ELSE
'------ Om faltet inte ar tomt gor sa...
	response.write "<input type=""text"" name=""age"" value=" & RecSet("age") & " size=""20"">"
END IF
%>

..du kan göra det mycket mer effektivt och lägga det på en rad inne mellan "" i value="" men det får du klura på själv.

/A :)

RED: Oops Obelix är snabbare på tangenterna än vad jag är.. Nåväl jag låter det stå kvar ändå.

Medlem sedan aug. 2002600 inlägg
#4

får detta felmeddelande på Obbelix kod:
ADODB.Field error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Medlem sedan juni 20012 236 inlägg
#5

...och om du testar min?

Medlem sedan aug. 2002600 inlägg
#6

annesophie skrev:

...och om du testar min?

Får jag detta felmeddelande:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/adde/star/andra_info2.asp, line 78

Medlem sedan aug. 2002600 inlägg
#7

och rad 78 har denna kod:

IF rs("age")="" OR IsNULL(rs("age")) then
Medlem sedan okt. 2002257 inlägg
#8

hmm.. testa


<%
age = RecSet("age")
if age = "" OR IsNULL(age) then
 age = "Ej angivet"
else
 age = age
end if
%>
<input type="text" name="age" value="<%=age%>" size="20">

Vilken typ är fältet i databasen? tal/text?

Medlem sedan juni 20012 236 inlägg
#9

Din tomte... ;)

Titta noga på koden du angav som referens först...

<input type="text" name="age" value="<%=[b][red]RecSet[/red][/b]("age")%>" size="20">

Titta nu på ditt felmeddelande:

IF [b][red]rs[/red][/b]("age")="" OR IsNULL([b][red]rs[/red][/b]("age")) then

Ser du nåt skumt? ;)
Själfallet genereras "Item cannot be found in the collection corresponding to the requested name or ordinal." då ditt item inte heter RecSet utan rs.

Ändra min kod till:

<%
IF rs("age")="" OR IsNULL(rs("age")) then
'------ Om faltet ar tomt sa gor si...
	response.write "Inget har!"
	'response.write "<input type=""text"" name=""age"" value=""Du har ju inte skrivit nat har jueeee!"" size=""20"">"
ELSE
'------ Om faltet inte ar tomt gor sa...
	response.write "<input type=""text"" name=""age"" value=" & rs("age") & " size=""20"">"
END IF
%>
Medlem sedan aug. 2002600 inlägg
#10

Obbelix skrev:

hmm.. testa


<%
age = RecSet("age")
if age = "" OR IsNULL(age) then
 age = "Ej angivet"
else
 age = age
end if
%>
<input type="text" name="age" value="<%=age%>" size="20">

Vilken typ är fältet i databasen? tal/text?

Text har fältet som typ.....

får detta felmeddelande:
ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/adde/star/andra_info2.asp, line 76

och på rad 76:

age = rs("age")
Medlem sedan aug. 2002600 inlägg
#11

annesophie skrev:

Din tomte... ;)

Titta noga på koden du angav som referens först...

<input type="text" name="age" value="<%=[b][red]RecSet[/red][/b]("age")%>" size="20">

Titta nu på ditt felmeddelande:

IF [b][red]rs[/red][/b]("age")="" OR IsNULL([b][red]rs[/red][/b]("age")) then

Ser du nåt skumt? ;)

Ändra min kod till:

<%
IF rs("age")="" OR IsNULL(rs("age")) then
'------ Om faltet ar tomt sa gor si...
	response.write "Inget har!"
	'response.write "<input type=""text"" name=""age"" value=""Du har ju inte skrivit nat har jueeee!"" size=""20"">"
ELSE
'------ Om faltet inte ar tomt gor sa...
	response.write "<input type=""text"" name=""age"" value=" & rs("age") & " size=""20"">"
END IF
%>

jo kom på de förut, men fortfarande samma fel...

Medlem sedan juni 200032 967 inlägg
#12

Då returnerar inte SQL-frågan någonting. Det måste man alltid kontrollera.

Medlem sedan aug. 2002600 inlägg
#13

Ändra min kod till:

<%
IF rs("age")="" OR IsNULL(rs("age")) then
'------ Om faltet ar tomt sa gor si...
	response.write "Inget har!"
	'response.write "<input type=""text"" name=""age"" value=""Du har ju inte skrivit nat har jueeee!"" size=""20"">"
ELSE
'------ Om faltet inte ar tomt gor sa...
	response.write "<input type=""text"" name=""age"" value=" & rs("age") & " size=""20"">"
END IF
%>

då får jag:

error '80020009'
Exception occurred.

/adde/star/andra_info2.asp, line 76

IF rs("age")="" OR IsNULL(rs("age")) then
Medlem sedan juni 20012 236 inlägg
#14

Min kod funkar ypperligt här. Tomt fält returnerar "Inget har!", ifyllt fält returnerar ett input fält med innehållet i cellen "age".

Medlem sedan juni 20012 236 inlägg
#15

Testa att ta bort OR IsNULL(rs("age")) men behåll resten.

Medlem sedan aug. 2002600 inlägg
#16

annesophie skrev:

Testa att ta bort OR IsNULL(rs("age")) men behåll resten.

fick det att funka nu.. tack alla!!

Medlem sedan feb. 200112 078 inlägg
#17

Skriv en funktion för det istället, smidigare kod och absolut mer skalbart.

function chkInput(str)
   IF cstr(trim(str) & "") = "" then
      chkInput = "Fältet är ej angivet!"
   ELSE
      chkInput = trim(str)
   END IF
end function
<input type="text" name="aget" value="<%=chkInput(rs("age"))%>" size="20">
269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)