---
title: "Hidden"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/5505-hidden"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Johanna"
published: "2000-03-27T08:16:00.000Z"
updated: "2000-03-28T18:04:00.000Z"
replies: 8
views: 234
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/5505-hidden"
---

# Hidden

## #1 — Johanna, 2000-03-27T08:16Z

Hej!

Ett värde (idnr) som jag skickar via en formtag med hidden skall hämtas upp på nästa sida med kommandot Request.Form("idnrvarde"). Detta värde skall i sin tur skickas vidare till en ny sida via en formtag med hidden. På slutdestinationssidan skall värdet åter hämtas upp med Request.Form("idnrvarde"). Det misslyckas....  Nedan bifogas relevant kod för de olika sidorna. 

Sid 1 \*\*\*
\<%idnr = RS("KliNr")%\>
\<form name="form1" method="GET" action="kontakterframe.asp" \>
\<input type= "hidden" name="idnrvarde" value= "\<%=idnr%\>"\>
\</form\>

Sid 2 \*\*\* (kontakterframe.asp)
\<form method = "GET" name ="form" action = "kontaktermeny.asp"\>
\<%idnr=Request.Form("idnrvarde")%\>
\<input type="hidden" name ="idnrvarde" value ="\<%=idnr%\>" \>
\</form\>

Sid 3 \*\*\* (kontaktermeny.asp)
\<%idnr = Request.Form("idnrvarde")%\>
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.Recordset")

Conn.Open ("DBklient")

SQL = "SELECT FIRSTNAME, LASTNAME, JOBTITLE1 FROM ucoKlientKontakt WHERE Klientnr = "&idnr&" "

RS.Open SQL, Conn, 1,2

Felmeddelandet lyder såhär;
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel (operator saknas) i frågeuttrycket 'Klientnr ='. 

/kontaktermeny.asp, line 27 

\*\*\*\* vilket syftar på SQL-frågan i sid 3 ovan.

Vad är fel?

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

## #2 — toha, 2000-03-27T08:34Z

Felet är att du använder GET som metod för formulen. Vid GET kommer alla form-element att skrivas som querystrings.

Så antingen ändrar du metoderna till POST eller så skrivet du Request.QueryString istället...

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

## #3 — Johanna, 2000-03-27T08:48Z

Hej Torbjörn!

Jag har POST som metod, det fungerar tyvärr inte ändå. (Jag testade bara med GET och glömde ändra detta innan jag klistarade in koden i mitt meddelande....sorry...)

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

## #4 — toha, 2000-03-27T10:39Z

Spooky!

Kontrollera var värdet försvinner. På "mellansidan" eller på "registreringssidan"?

Ett tips är att skriva ut sql-satsen INNAN du exekverar den. Det brukar underlätta när man buggtestar.

Ett annat tips är att inte använda sig av Recordset i onödan. De är långsammare än Connection-objektet. Connection.Execute returnerar, om man så vill, ett statiskt Recordset. Din tredje sida skulle kunna lika gärna se ut så här:

```

idnr = Request.Form("idnrvarde")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("DBklient")

SQL = "SELECT FIRSTNAME, LASTNAME, JOBTITLE1 FROM ucoKlientKontakt WHERE Klientnr = " & idnr
Set objRec = Conn.Execute SQL
```

Där **objRec** blir ditt skapade recordset.

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

## #5 — Johanna, 2000-03-27T11:03Z

Hej igen!

Tack för tipsen!(du menar att man kan använda ObjRec när man enbart skall läsa från databasen? Ska man skriva, lägga till eller modifiera så måste man sätta upp ett riktigt recordset? Har jag uppfattat saken korrekt?)

Till saken; 
Jag provar med att sätta fasta, dvs befintliga idnr från databasen, värden som idnr på de två första sidorna, det fungerar inte heller..... men om jag sätter ett fast värde på tredje sidan så fungerar det. Kan man kanske kalla spooky? Har du några fler förslag?

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

## #6 — Johanna, 2000-03-27T11:09Z

Sidan 2 är en ren frame-sida, kan det ha något med saken att göra?

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

## #7 — toha, 2000-03-27T13:30Z

Du behöver inte skapa recordset för att lägga in något i databasen heller (jag har ALDRIG använt mig av det). Du gör på samma sätt när du lägger in data, fast du använder dig av INSERT INTO-satsen istället:

```
namn = Request.Form("namn")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("DBklient")

SQL = "INSERT INTO ucoKlientKontakt(FIRSTNAME) VALUES(" & namn & ");"
Set objRec = Conn.Execute SQL
```

Till ditt problem:

Testa att skriva Response.Write SQL innan "execute"-raden så kan du läsa vad det är för sql-uttryck som skickas till databasen.

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

## #8 — Johanna, 2000-03-28T07:27Z

Hej Torbjörn!

Efter mkt om och men så beslöt jag mig för att använda sessions istället för hidden för att få fram idnr på tredje sidan. Detta fungerar utmärkt. Frågan är; hur prestandaförödande är det att använda sessions,kommer det att sega ner systemet? (ca 5 användare)

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

## #9 — emission, 2000-03-28T18:04Z

Med 5 användare är det verkligen inget problem att använda Session. Problemen uppstår när man lägger för stora variabler, eller fel typ av variabler i Session och har tiotusentals användare.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/5505-hidden
