/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Rækkefølge af felter i en form
Fra : Hintzmann


Dato : 20-02-03 09:44

Hej NG

- Hvordan får jeg fat i den rækkefølge felterne står i en form ?

Som sådan er det ikke svært, jeg kan lave en løkke der løber igennem
Request.Form eller Request.QueryString.

<code>
Dim x
For x = 1 To Request.Form.Count
response.write "<p>" & Request.Form.Key(x) &" = " & Request.Form(x) &
"</p>"
next
For x = 1 To Request.QueryString.Count
response.write "<p>" & Request.QueryString.Key(x) &" = " &
Request.QueryString(x) & "</p>"
next
</code>

Men ... hvis flere felter har samme navn, bliver værdierne for disse felter
skrevet ud første gang de opstår.

Det ønsker jeg ikke. Jeg vil have dem i den rækkefølge de står i formen.

Mvh
Hintzmann



 
 
Chrisser (20-02-2003)
Kommentar
Fra : Chrisser


Dato : 20-02-03 10:08

"Hintzmann" <nospam@please.dk> skrev i en meddelelse
news:b324fp$g5k$1@sunsite.dk...
> Hej NG
>
> - Hvordan får jeg fat i den rækkefølge felterne står i en form ?
>
> Som sådan er det ikke svært, jeg kan lave en løkke der løber igennem
> Request.Form eller Request.QueryString.
>
> <code>
> Dim x
> For x = 1 To Request.Form.Count
> response.write "<p>" & Request.Form.Key(x) &" = " & Request.Form(x) &
> "</p>"
> next
> For x = 1 To Request.QueryString.Count
> response.write "<p>" & Request.QueryString.Key(x) &" = " &
> Request.QueryString(x) & "</p>"
> next
> </code>

Jeg ved ikke om resultatet vil være anderledes med:
<%
For each X in Request.Form
response.write X & ": " & Request.Form(X).Item & "<br>"
Next
%>

> Men ... hvis flere felter har samme navn, bliver værdierne for disse
felter
> skrevet ud første gang de opstår.

Har du nogen god grund til at have flere felter med samme navn - normalt er
det kun en ekstra kilde til fejl....

> Det ønsker jeg ikke. Jeg vil have dem i den rækkefølge de står i formen.

Det burde du under alle omstændigheder få med "For each...", selv om jeg dog
ikke har testet den.

Ellers kan du prøve at se hvad din form rent faktisk indeholder med:
Response.write "Hele formen: " & Request.Form & "<br>"


Chrisser



Hintzmann (20-02-2003)
Kommentar
Fra : Hintzmann


Dato : 20-02-03 10:47

"Chrisser" <cbj@egdatainform.dk> skrev i en meddelelse
news:b32648$qq7$1@sunsite.dk...
>
> Jeg ved ikke om resultatet vil være anderledes med:
> <%
> For each X in Request.Form
> response.write X & ": " & Request.Form(X).Item & "<br>"
> Next
> %>

Hej Chrisser

Med "For each..." kommer form felterne hulter til bulter. Så den kan jeg
ikke bruge.

>
> Har du nogen god grund til at have flere felter med samme navn - normalt
er
> det kun en ekstra kilde til fejl....
>

Jeg vil mene at jeg har en god grund. Men hvis du har et alternativ så
lytter jeg.

Det er til en form som afspejler et XML-dokument. Formen er hirakisk
opbygget ligesom XML-dokumentet.
Jeg skal så undervejs i formen have en XML-pointer som fortæller hvor de
næste noder skal indsættes i XML-dokumentet.


Her er et eksempel på HTML-formen

<input type="hidden" name="Items" value="" />

<input type="hidden" name="xml_pointer" value="/Items" />
<input type="hidden" name="Item" value="" />
<input type="hidden" name="xml_pointer" value="/Items/Item" />

<label>Label</label>
<input type="text" name="Name" value="Produkt A" />
<label>Value</label>
<input type="text" name="Price" value="1000" />

<input type="hidden" name="xml_pointer" value="/Items" />
<input type="hidden" name="Item" value="" />
<input type="hidden" name="xml_pointer" value="/Items/Item" />

<label>Label</label>
<input type="text" name="Name" value="Produkt B" />
<label>Value</label>
<input type="text" name="Price" value="2000" />


På serversiden opbygger jeg så XML-dokumentet så det kommer til at se ud
ala. nedenstående

<Items>
<Item>
<Name>Produkt A</Name>
<Price>1000</Price>
</Item>
<Item>
<Name>Produkt B</Name>
<Price>2000</Price>
</Item>
</Items>

Umiddelbart virker det. Jeg skal så bare finde ud af en måde at lave
attributter på.

> > Det ønsker jeg ikke. Jeg vil have dem i den rækkefølge de står i formen.
>
> Ellers kan du prøve at se hvad din form rent faktisk indeholder med:
> Response.write "Hele formen: " & Request.Form & "<br>"
>

Request.form kan jeg bruge
Den returnere hele formen som en string.
Så split'er jeg ved hvert & og endnu engang ved hvert =

<%
Dim sForm, aForm
Dim Field, FieldName, FieldValue

sForm = request.form
aForm = split(sForm, "&")

For Each Field In aForm
Field = split(Field, "=")
FieldName = Field(0)
FieldValue = Field(1)
response.write "<p>" & FieldName &" = " & FieldValue & "</p>"
Next
%>

Så skal jeg bare lige have noget URLdecode på FieldName og FieldValue.

Jeg takker for hjælpen.

Hintzmann



Chrisser (20-02-2003)
Kommentar
Fra : Chrisser


Dato : 20-02-03 11:06

"Hintzmann" <nospam@please.dk> skrev i en meddelelse
news:b32877$chf$1@sunsite.dk...
> "Chrisser" <cbj@egdatainform.dk> skrev i en meddelelse
> news:b32648$qq7$1@sunsite.dk...
> >
> > Jeg ved ikke om resultatet vil være anderledes med:
> > <%
> > For each X in Request.Form
> > response.write X & ": " & Request.Form(X).Item & "<br>"
> > Next
> > %>

> Med "For each..." kommer form felterne hulter til bulter. Så den kan jeg
> ikke bruge.

Det skulle den nu netop ikke gøre...

> > Har du nogen god grund til at have flere felter med samme navn - normalt
> er
> > det kun en ekstra kilde til fejl....
> >
>
> Jeg vil mene at jeg har en god grund. Men hvis du har et alternativ så
> lytter jeg.

Nix - jeg har ikke sat mig ret meget ind i XML, så jeg kan ikke overskue det


> Det er til en form som afspejler et XML-dokument. Formen er hirakisk
> opbygget ligesom XML-dokumentet.
> Jeg skal så undervejs i formen have en XML-pointer som fortæller hvor de
> næste noder skal indsættes i XML-dokumentet.
>
> Request.form kan jeg bruge
> Den returnere hele formen som en string.
> Så split'er jeg ved hvert & og endnu engang ved hvert =

Det var da heldigt - jeg gav dig den for at du kunne tjekke hvad din form
rent faktisk indeholdt - det er jo ikke altid det man forventer

> Jeg takker for hjælpen.

Det var så lidt


Chrisser



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste