---
title: "formulär som postas till samma sida"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9582-formulär-som-postas-till-samma-sida"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "soffan76"
published: "2001-05-18T10:39:00.000Z"
updated: "2001-05-18T11:28:00.000Z"
replies: 10
views: 243
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/9582-formulär-som-postas-till-samma-sida"
---

# formulär som postas till samma sida

## #1 — soffan76, 2001-05-18T10:39Z

Hej!

Jag undrar hur det fungerar med formulär som postas till samma sida och läggs in i en databas. Det går ju bra om formulärfälten från början är tomma för då kan man ju bara lägga in en IF sats allra först...

```
<% If Request.Form("namn")="" THEN %>
```

Men om de nu redan är ifyllda, hur gör man då?

Permalänk: https://www.webforum.nu/p/9582

## #2 — jepsO, 2001-05-18T10:45Z

Jag antar att du vill få reda på hur du uppdaterar befintlig information. När du hämtar upp värdena till fälten kan du göra en **\<input type="hidden" value="\<%=ID%\>" name="ID"\>** och sedan hämta upp den med ID = Request.Form("ID"). Sedan nåt sånt här:

```
if ID <> "" then
SQL = "UPDATE..."
else
SQL = "INSERT INTO
end if
```

Permalänk: https://www.webforum.nu/p/269272

## #3 — PatrikB, 2001-05-18T10:50Z

hello,

detta brukar jag använda mig av:

```
If Request.Form > "" Then
'## -- gör vad du ska när formuläret postas --
Else
'## -- vad ska hända om formuläret ej postas --
End If
```

Kolla även in denna: <http://cgi.webforum.nu/wf/Forum11/HTML/003302.html> 

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/269273

## #4 — Lukaspojken, 2001-05-18T10:57Z

Ändra i databasen istället och tillåt nollvärden så slipper du massa onödiga if-satser...sen för att obligatoriska fält i form så använd java-script...här är min kod:

```
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM sseerrss"
RecSet.Open Visa, Connect, 3, 3

RecSet.AddNew
RecSet("Username") = Request.Form("username")
RecSet("Password") = Request.Form("password")
RecSet("E-post") = Request.Form("epost")
```

Permalänk: https://www.webforum.nu/p/269274

## #5 — Lukaspojken, 2001-05-18T10:58Z

Detta ska vara i slutet också...

```
RecSet.Update

RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
```

Permalänk: https://www.webforum.nu/p/269275

## #6 — jepsO, 2001-05-18T11:05Z

Såhär brukar jag göra för att kontrollera om obligatoriska fält inte är tomma:

Säg att vi har tre fält varav två är obligatoriska:

```
<form method="POST" action="sida.asp" name="myForm">
<input type="hidden" name="action"> (förklarar varför denna behövs nedan)
För- och efternamn*
<input type="text" value="<%=fenamn%>" name="fenamn">
E-postadress*
<input type="text" value="<%=email%>" name="email">
Telefon
<input type="text" value="<%=tele%>" name="tele">
<input type="button" value="Posta" onClick="submit_form('Posta')">
```

JavaScipt-funktionen *submit_form()* ser ut såhär:

```
function submit_form(value) {
if (document.myForm.fenamn.value == "") {
alert('Du måste fylla i ditt för- och efternamn.');
document.myForm.fenamn.focus();
}
else if (document.myForm.email.value == "") {
alert('Du måste fylla i din e-postadress.');
document.myForm.email.focus();
}
else {
document.myForm.action.value = value;
document.myForm.submit();
}
}
```

Informationen hämtas sedan upp som vanligt:

```
if trim(Request.Form("action")) = "Posta" then
...
end if
```

Vad som händer är alltså att JavaScript-funktionen kontrollerar om de obligatoriska fälten är tomma. "If not" tilldelar den hidden-fältet värdet "Posta" och submittar informationen.

Jag anser den här metoden vara mer praktisk än ren ASP, eftersom man då måste skicka iväg information och omge koden med fler if-satser.

Permalänk: https://www.webforum.nu/p/269276

## #7 — PatrikB, 2001-05-18T11:09Z

oj, oj ... 

varför lägga till med recordset?
Finns vissa tillfällen då det är lyckat att lägga till med recordset och det är tex vid en medlemsansökan där användarnamn ej får ha dubletter.

I detta läga så är det ju onödigt att först hämta alla poster som finns i tabellen och sedan lägga till.

Bättre att göra på detta viset och lite snällre mot servern:

```
strSQL = "INSERT INTO TBL_TABELL(FLD_FIELD) VALUES('" & strFieldInput & "')"
objConn.Execute(strSQL)
```

En sak till. Det är inte alltid som javascriptlösningen är den bästa lösningen för att validera formulärfält.
\[r\]
Tex om man har "dynamiska" formulrfält som ska visas beroende på användare, då kan jscript lösningen vara klart knölig att använda.
\[/r\]
Själv tycker jag det är irriterande att hela tiden få upp dessa alerts när man ska submitta. :o

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/269277

## #8 — jepsO, 2001-05-18T11:12Z

Ptcha... Det är ju en smakfråga. Ibland kombinerar jag JavaScript-validering med ASP-validering. Det går ju t.ex. inte att kontrollera om ett användarnamn är upptaget. JavaScript-valideringen får ta hand om simplare kontroller av typen "är fältet tomt?", medan ASP får kolla om e-postadressen är giltig etc.

Permalänk: https://www.webforum.nu/p/269278

## #9 — PatrikB, 2001-05-18T11:15Z

... precis ... det var därför som jag gav ASP lösningen eftersom detta är asp-forumet ;o

\+ att ju fler lösningar man ser detsto mer börjar man tänka HUR kan man lösa detta smidigare \*ler\*

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/269279

## #10 — Lukaspojken, 2001-05-18T11:23Z

Jag har ännu inte förstått funktionen av recordsets men i detta fallet så var det en registrering det handlade om i min kod som jag klippte ut det ifrån...används recordset bara för att undvika dubbleter?

Permalänk: https://www.webforum.nu/p/269280

## #11 — PatrikB, 2001-05-18T11:28Z

nej, man kan kolla efter dubbletter på annat sätt oxå.
om man tex insertar till db ändå så kommer det att genereras ett fel. om man då har On Error Resume Next "påslaget" så behöver man ej använda recordset för att lägga till.

Annars är det så här att ADODB.Recordset använder man BARA när man ska hämta poster från db och tex visa dem på en sida.
Om du ska lägga till nya poster, editera redan befintliga poster eller ta bort poster så ska man INTE använda ADODB.Recordset utan man använder istället .Execute metoden i ADODB.Connection ojbektet.

Som sagt ... sök på IDG här på forumet så ska du få se vad det sägs om deras "ASP-skola" 
cya,
PatrikB

Permalänk: https://www.webforum.nu/p/269281

---

Tråden på webben: https://www.webforum.nu/amne/asp/9582-formulär-som-postas-till-samma-sida
