Avatar billede thomas_regin Nybegynder
07. september 2001 - 13:50 Der er 16 kommentarer og
2 løsninger

ASP/Javascript form!

Hejsa!

Jeg har et lille dillemma:

På mit site har jeg en lang liste af artikler. Ud for hver artikel har jeg et INPUT felt, hvor folk kan skrive et tal, hvorefter at artiklerne sorterer sig selv efter dette nummer.

Problemet er, at jeg ikke kan \"fange\" det rigtige input-felt, når formularen bliver sendt afsted til serveren. F.eks:

i = 1
Response.Write \"<form method=post action=whatever.asp>\"
do while i < 10
Response.Write \"<input type=text name=whatever>\"
i = i + 1
loop
Response.Write \"</form>\"

Hvis jeg nu kun ændrer i én af disse input-felter og lader resten være tomme, så kan jeg jo ikke finde ud af, i hvilken af disse felter at mine brugere indtastede et tal!.. Eller kan jeg?..

Jeg har prøvet med javascript, at få den til at detecte i hvilken formular at jeg skrev, v.h.a en onclick-routine, men det kunne desværre ikke lade sig gøre.

Hjæælp!.. :)

Thomas Regin.

Avatar billede roenving Novice
07. september 2001 - 13:52 #1
Nej du bliver nødt til at give unikke navne, altså (ca. kender ikke ASP):

Response.Write \"<input type=text name=whatever\"+str(i)+\">\"

hth
jes
Avatar billede nute Nybegynder
07. september 2001 - 13:54 #2
hvis du skriver:

i = 1
Response.Write \"<form method=post action=whatever.asp>\"
do while i < 10
Response.Write \"<input type=text name=\"\"whatever\" & i & \"\"\">\"
i = i + 1
loop
Response.Write \"</form>\"

så vil alle dine input felt få ulike navn, og du vil kunne requeste alle felt på denne måte:

dim arr = Array(10)
for i=0 to 10
  arr(i) = request.form(\"whatever\" & i)
next

så har du alle verdier i en array som du kan behandle...

/nute
Avatar billede nute Nybegynder
07. september 2001 - 13:55 #3
roenving >> str(i) er ikke nødvendig. i blir \"konvertert\" til en string i alle tilfelle...

;-)
Avatar billede nute Nybegynder
07. september 2001 - 13:55 #4
hmm....svarer
Avatar billede roenving Novice
07. september 2001 - 13:56 #5
>>nute

Jamen så har jeg da lært lidt mere om ASP =:·]
Avatar billede thomas_regin Nybegynder
07. september 2001 - 13:56 #6
Hejsa igen!..

Tak for de hurtige svar!. :)

Jeg skal nok lige sige, at jeg skal have et artikel-ID trukket med over i hvert input felt, så jeg kan associere værdien til en bestemt artikel!.. Og det er faktisk dét der er det reelle problem!..

Sorry, at jeg ikke fik udspecificeret dette!

Thomas.
Avatar billede nute Nybegynder
07. september 2001 - 14:00 #7
roenving >> men det er jo derfor man er her på eksperten, er det ikke ;-)

thomas >> dette artikkel_ID du skal overføre, kommer denne fra en database ? eller er artikkel_ID\'en dét du faktisk taster inn...
Avatar billede thomas_regin Nybegynder
07. september 2001 - 14:03 #8
Nute,

Det kommer fra Databasen, hvilket er et problem, når man skal have det med over i et input-felt!

Thomas.
Avatar billede thomas_regin Nybegynder
07. september 2001 - 14:04 #9
(fortsat).. Altså sammen med en værdi som mine brugere selv skriver!..
Avatar billede nute Nybegynder
07. september 2001 - 14:08 #10
hmmm....jeg ville ha gjort følgende:

while( NOT RS.EOF )
  response.write RS(\"artikkelTittel\") & \" \"
  response.write \"<input type=\"\"text\"\" name=\"\"whatever\" & RS(\"artikkel_ID\") & \"\"\" value=\"\"\" & RS(\"artikkel_ID\") & \"\"\"><br>\"
  RS.MoveNext
wend

u cu my point ?
Avatar billede nute Nybegynder
07. september 2001 - 14:09 #11
ahhh...du vil overføre *både* artikkel nummeret *og* et nummer som brukeren skriver ?
Avatar billede thomas_regin Nybegynder
07. september 2001 - 14:11 #12
Nute,

Jep!.. Det er præcis hvad jeg vil - altså overføre BÅDE artikel_ID OG et tal, som brugeren skriver!!.. :)

Derfor er det lidt vanskeligt!!

Thomas.
Avatar billede roenving Novice
07. september 2001 - 14:14 #13
Response.Write \"<input type=text name=\"\"whatever\" & i & \"\"\">\"
Response.Write \"<input type=hidden value=\"\"\" & RS(\"artikkel_ID\") & \"\"\" name=\"\"whoever\" & i & \"\"\">\"
Avatar billede thomas_regin Nybegynder
07. september 2001 - 14:17 #14
Roenvig,

Ja, det er selvfølgelig en mulighed, men hvordan vil du så finde ud af hvilken input-felt at brugeren har skrevet i?..

Mit bedste bud er at bruge det samme navn for hvert input-felt, og så køre en:

for each item in Request.Form(\"whatever\")

og så herefter checke på et HIDDEN artikel_ID felt!..

Men det bliver hurtigt vildt forvirrende!.. Det ville være herligt, hvis der var en nemmere løsning!..

Thomas.
Avatar billede nute Nybegynder
07. september 2001 - 14:28 #15
det er klart den beste måte å kalle alle tekstfelt for det samme, *men* du skal også legge på en ekstra identifikator, sånn at man kan skille dem fra hverandre:

<input type=\"text\" name=\"textvalue1\">
<input type=\"text\" name=\"textvalue2\">
osv...
deretter hiddenfields:
<input type=\"hidden\" name=\"hiddenvalue1\">
<input type=\"hidden\" name=\"hiddenvalue2\">

så har du hele tiden en relasjon mellom ditt hidden felt og ditt tekst felt...

Avatar billede thomas_regin Nybegynder
07. september 2001 - 14:37 #16
Nute,

Tak for svaret!.. Jeg prøver at arbejde lidt videre med det. Det er jo ikke noget problem at lave unikke navne på input-felterne, men det er bestemt et problem at hente værdierne fra et unikt input-felt, når man både skal have Artikel ID og user-input med!..

Jeg vender tilbage snarest!

Thomas.
Avatar billede thomas_regin Nybegynder
07. september 2001 - 15:17 #17
Så fik jeg det til at virke med dette loop:

IF Request.QueryString(\"action\") = \"change_row\" then
y = 1

do while y <= session(\"rows\")
    SQL = \"UPDATE Artikel_countainer_tbl SET Artikel_row = \'\" & Request.Form(\"row_order\" & y & \"\") & \"\' WHERE ID = \'\" & Request.Form(\"the_id\" & y & \"\") & \"\'\"
    dbconn.execute(SQL)
y = y + 1
Loop
Response.Redirect(\"AdmKunder.asp?retur=yes&side=Navigation&Kunde_id=\" & session(\"UserID\") & \"\")

End If

Jeg siger tak for hjælpen til jer begge og tror simpelthen at jeg bliver nødt til at dele pointene mellem jer!..

Med venlig hilsen og endnu en gang tak,

Thomas Regin.
Avatar billede roenving Novice
07. september 2001 - 15:31 #18
Og takker for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester