webForumDet fria alternativet

textarea läs/fyll (och validera?)

ASP

5 svar · 648 visningar · startad av bananskalet

Medlem sedan feb. 200722 inlägg
Frågan#1

Hej, min debut här...
Min fråga gäller asp och mysql (och kanske lite javascript??)... Det går bra att göra referenser till VB och SQL Server för den som så önskar. mysql-biten fixar jag nog också, men det är värre med kombinationen asp, textarea och framför allt räckvidd.

Jag tar ett enkelt exempel.

Jag önskar ha...
* ett textfält
* en spara-knapp
* en hämta-knapp
Klick på hämta-knappen ska läsa in texten och visa den i textarean.
Klick på spara-knappen ska validera texten och spara ner den.

Problemet rör huruvida att
- kunna komma åt innehållet i textarean (och exempelvis kunna få in det i en variabel, kanske typ strText). I så fall har man den ju där, och kan göra precis som man vill med den den i asp-koden.
- kunna påverka innehållet i textarean. Dvs bara kunna skriva typ textarea.value = strtext.

Hur kommer jag åt textarean i asp?? Hur kan jag läsa in dess innehåll till en variabel? Hur kan jag få in en variabels innehåll i textarean?

Jag har sett javascript som använder textarea.value för att komma åt textarean, dvs både läsa/sätta den. Fungerar samma i asp?? I html?

Jag begriper nog inte riktigt det kring textareans räckvidd. Typ för att få in den i en variabel.
Jag vet man kan skriva <textarea></textarea> och <form></form> och <% %> osv, men kanske har jag missat nån viktig regel som rör textareans räckvidd...??

Kan hela mitt önskemål (inkl valideringen?) lösas i en enda asp-sida, eller bör/måste man dela upp?

(Har förstås googlat flitigt osv, men inte riktigt hittat rätt.)

Medlem sedan dec. 19996 721 inlägg
#2

Textarean (och andra element) är helt okänd för asp-koden, eftersom asp körs på servern, medan textarean ligger hos klienten. För att asp ska kunna komma åt värdet i textarean måste informationen skickas till servern, vanligtvis genom att man postar formuläret som textarean ligger i.

Prova gärna nedanstående (spara som "form.asp" och kör på din webbserver)

<%

plupp=request.form("mammut")

%>
<html>
	<body>
		<form action="form.asp" method="post">
			<textarea name="mammut" rows="3" cols="20">Skriv in en text</textarea>
			<br>
			I textarean låg texten:<br>
			<b><%=plupp%></b>
			<br>
			<input type="submit" value="Skicka">
		</form>
	</body>
</html>
Medlem sedan feb. 200722 inlägg
#3

Tack emission. Ditt exempel fungerar. Bra att få in det hela i en variabel. Jag antar att det även kan kompletteras med valideringskod som gör replace? I så fall skulle man ju kanske vilja lägga in resultatet av valideringen i textarean. Hur kompletterar man i så fall?

Sen undrar jag fortfarande hur jag gör för att få in variabeln (plupp) i textarean. Spontant tänker jag mig att man kanske bakar in plupp exakt på den plats där du skriver "Skriv in en text"? Jag provade nyss, men får felmeddelande om att "plupp is undefined"... tills jag kom på att man ska ha "=" före. Därmed löstes det hela.

Är textareor överhuvudtaget bra vad gäller visning av exempelvis texter som folk har skrivit? För inmatning måste de väl hur som helst vara kanonbra? Sen vill man nog även kunna göra reply (gäller både mail och forum), och då få upp även texten man gör reply på, kanske med ">" i början av varje nytt stycke eller så.

Uppdatering efteråt: Jag har modifierat koden lite, och därmed även löst en del av det jag frågar om ovan. Men kommentera gärna ändå, så jag vet hurpass "rätt" jag tänker.
Kommer förstås experimentera mer. Vet inte ens om jag gör rätt som lagt in " m m, och vet inte ens vad enkelcitat-tecknet heter (kanske fel nedan?).

Kod brukar man visst vilja se:

<%
plupp=request.form("mammut")
response.write plupp & "<br>"
plupp2=replace(plupp,chr(34),"&quot;")
plupp2=replace(plupp2,"'","&acute;")
response.write plupp2 & "<br>"
%>
<html>
	<body>
		<form action="form.asp" method="post">
			<textarea name="mammut" rows="3" cols="20"><%=plupp2%></textarea>
			<br>
			I textarean låg texten:<br>
			<b><%=plupp2%></b>
			<br>
			<input type="submit" value="Skicka">
		</form>
	</body>
</html>
Medlem sedan feb. 200722 inlägg
#4

Vet nu att acute ovan är fel, och att det skulle stått apos istället. Fast det sägs inte fungera i IE. Hur ersätter man apostrof? (Man skulle förstås kunna skippa dem helt, fast å andra sidan kan ju finnas irländska namn eller engelsk text att ta hänsyn till, så det vore nog inte så bra.)

Medlem sedan juni 200032 967 inlägg
#5

Varför vill du ersätta apostrofer?
Det enda du måste tänka på är att escape:a apostrofer innan du använder värden i SQL-frågor. (Men det handlar inte om att ersätta apostrofer, utan att dubblera dem, så en apostrof blir två (i alla fall om vi pratar om Access eller SQL Server).)

Och på vilket sätt skulle inte apostrofer "fungera" i IE?

Medlem sedan feb. 200722 inlägg
#6

Tack för svar. Jag får nog ta valideringsbiten i en egen tråd, och börja med det andra... För att svara på din fråga så vet jag svaret men inte hur jag ska uttrycka det, men denna sida förklarar det hela:
http://www.w3schools.com/html/html_entities.asp
(Jag menade helt enkelt bara att och-tecken + apos + semikolon inte verkar fungera i IE, utan att man tydligen behöver skriva ut ascii-koden istället.)

Hur som helst... Nån som har tips på hur jag löser det här med de olika knapparna (spara, hämta och numera även granska)? Granska går utmärkt. Hämta gör det kanske också, när jag väl skriver dit select-satsen. Men hur sparar jag via asp?

Hur gör man för att ha flera knappar i formuläret (?), och exempelvis sätter nånting (en variabel, parameter eller nåt) som gör att den inledande asp-koden vet hur den ska agera. Jag har förberett så bra med if-satser beroende på om granska, spara eller hämta. Men då måste jag väl i så fall få med mig både innehållet i textarean och även info om vad som ska göras.

Jag vill alltså ha en granska-knapp (den tycks fungera bra), en spara-knapp (som ska spara ner en validerad version av textareans innehåll), och en hämta-knapp (som ska stoppa in en från mysql inläst textmassa i textarean).

254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)