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.
16 svar · 356 visningar · startad av Thompa__85
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
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.
...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å.
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.
...och om du testar min?
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
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?
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
%>
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")
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")) thenSer 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...
Då returnerar inte SQL-frågan någonting. Det måste man alltid kontrollera.
Ä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
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".
Testa att ta bort OR IsNULL(rs("age")) men behåll resten.
annesophie skrev:
Testa att ta bort OR IsNULL(rs("age")) men behåll resten.
fick det att funka nu.. tack alla!!
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">