/ 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
Requeste alle Form-felter med en bestemt s~
Fra : Rasmus Nielsen


Dato : 20-09-02 18:02

Hej,

Jeg har brug for at requeste en række formfelter, der hedder noget i
formatet "antal_1000", hvor 1000 altid er et fire-cifret varenummer.

Problemet er at jeg ikke kender varenummeret på asp-siden. Felterne med
navnet "antal_XXXX" laves automatisk på den foregående asp-side i et
variabelt antal. Jeg vil derfor lave en Request.Form, der henter alle
værdier i alle felter, der begynder med "antal_" - de skal så fyldes ind i
en array.

Hvordan hulen kan jeg gøre det?

--
Venlig hilsen / Best regards,

Rasmus Nielsen.



 
 
Mark S. Rasmussen (20-09-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 20-09-02 18:15

> Hej,
>
> Jeg har brug for at requeste en række formfelter, der hedder noget i
> formatet "antal_1000", hvor 1000 altid er et fire-cifret varenummer.
>
> Problemet er at jeg ikke kender varenummeret på asp-siden. Felterne med
> navnet "antal_XXXX" laves automatisk på den foregående asp-side i et
> variabelt antal. Jeg vil derfor lave en Request.Form, der henter alle
> værdier i alle felter, der begynder med "antal_" - de skal så fyldes ind i
> en array.
>
> Hvordan hulen kan jeg gøre det?

Hej Rasmus. Her er et lille eksempel:

Dim strTemp,arrVarer
For Each Item In Request.Form()
If InStr(Item, "antal_") > 0 Then
strTemp = "," & Request.Form(Item) & strTemp
End If
Next
arrVarer=Split(Mid(strTemp, 2), ",")

Og så har du et array (arrVarer) hvor alle dine form værdier gerne
skulle være i.

Mvh Mark


---
Postet via www.improve.dk


Rasmus Nielsen (20-09-2002)
Kommentar
Fra : Rasmus Nielsen


Dato : 20-09-02 18:27

> Hej Rasmus. Her er et lille eksempel:

Mange tak - det virker som det skal.

Et lille tillægsspørgsmål: Findes der nogen måde at få rækkefølgen i
array'et til at passe med den rækkefølge, formfelterne står i på den
foregående side - som det er nu sendes de jo bare i tilfældig rækkefølge.

Et lidt større tillægsspørgsmål: Jeg gennemløber array'et:
For t = LBound(arrVarer) to UBound(arrVarer)
Response.Write "<li>" & arrVarer(t)
Next

Men i denne løkke skal jeg også bruge selve varenumret - altså det, der stod
efter "antal_" i formfelterne - som det er nu, er det antallet, jeg kan se.
Hvordan griber jeg det an?

--
Venlig hilsen / Best regards,

Rasmus Nielsen.



Mark S. Rasmussen (20-09-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 20-09-02 19:01

> Et lille tillægsspørgsmål: Findes der nogen måde at få rækkefølgen i
> array'et til at passe med den rækkefølge, formfelterne står i på den
> foregående side - som det er nu sendes de jo bare i tilfældig rækkefølge.

Uden at lave en sorteringsalgoritme til arrayet er det ikke så let.
Metoden som jeg bruger i det nye eksempel nedenfor virker dog næsten
100% så længe der er under 64 form felter (kan klare mere, men 64 er
en god grænse).


> Men i denne løkke skal jeg også bruge selve varenumret - altså det, der stod
> efter "antal_" i formfelterne - som det er nu, er det antallet, jeg kan se.
> Hvordan griber jeg det an?

Det er nok lettest at lave to arrays, et som holder varenummeret, og
et som holder værdien:

Dim strTemp,strTemp2,arrVarer,arrVareNumre, i
For i = 1 To Request.Form.Count
If InStr(Item, "antal_") > 0 Then
strTemp = "," & Request.Form(i) & strTemp
strTemp2 = "," & Mid(Request.Form.Key(i),7) & strTemp2
End If
Next
arrVarer=Split(Mid(strTemp, 2), ",")
arrVareNumre=Split(Mid(strTemp2, 2), ",")

Sig til hvis det ikke virker :)

Mvh Mark

---
Postet via www.improve.dk


Rasmus Nielsen (20-09-2002)
Kommentar
Fra : Rasmus Nielsen


Dato : 20-09-02 20:38

> arrVarer=Split(Mid(strTemp, 2), ",")
> arrVareNumre=Split(Mid(strTemp2, 2), ",")

Hertil er jeg med. Men hvordan få jeg kaldt oplysningerne fra begge arrays i
den samme løkke, altså:

For t = LBound(arrVarer) to UBound(arrVarer)
Response.Write "<li>" & arrVarer(t)
Next

Virker jo kun på den ene. Hvordan får jeg varenummeret til at stå side om
side med antallet?

--
Venlig hilsen / Best regards,

Rasmus Nielsen.



Mark S. Rasmussen (20-09-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 20-09-02 22:51

> For t = LBound(arrVarer) to UBound(arrVarer)
> Response.Write "<li>" & arrVarer(t)
> Next
>
> Virker jo kun på den ene. Hvordan får jeg varenummeret til at stå side om
> side med antallet?

Siden begge arrays indeholder samme antal items kan du bare udskrive
dem således:

For t = LBound(arrVarer) to UBound(arrVarer)
Response.Write "<li>" & arrVareNumre(t) & ":" & narrVarer(t)
Next

Mvh Mark

---
Postet via www.improve.dk


Mark S. Rasmussen (20-09-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 20-09-02 22:52

> For t = LBound(arrVarer) to UBound(arrVarer)
> Response.Write "<li>" & arrVareNumre(t) & ":" & narrVarer(t)
> Next

Der sneg sig lige et n ind, koden skal være således:

For t = LBound(arrVarer) to UBound(arrVarer)
Response.Write "<li>" & arrVareNumre(t) & ":" & arrVarer(t)
Next

Mvh Mark

---
Postet via www.improve.dk


Rasmus Nielsen (21-09-2002)
Kommentar
Fra : Rasmus Nielsen


Dato : 21-09-02 19:49

Det burde virke, men flg. kode resulterer i en tom side:

<%
Dim strTemp,strTemp2,arrVarer,arrVareNumre, i
For i = 1 To Request.Form.Count
If InStr(Item, "antal_") > 0 Then
strTemp = "," & Request.Form(i) & strTemp
strTemp2 = "," & Mid(Request.Form.Key(i),7) & strTemp2
End If
Next
arrVarer=Split(Mid(strTemp, 2), ",")
arrVarenumre=Split(Mid(strTemp2, 2), ",")


For t = LBound(arrVarer) to UBound(arrVarer)
Response.Write "<br><li>" & arrVarenumre(t) & ":" & arrVarer(t)
Next
%>

Hvad er der galt? Det virker fint, hvis man nøjes med at udskrive antallet
(med den tidligere kode)
--
Venlig hilsen / Best regards,

Rasmus Nielsen.



Rasmus Nielsen (22-09-2002)
Kommentar
Fra : Rasmus Nielsen


Dato : 22-09-02 13:04

Det burde virke, men flg. kode resulterer i en tom side:

<%
Dim strTemp,strTemp2,arrVarer,arrVareNumre, i
For i = 1 To Request.Form.Count
If InStr(Item, "antal_") > 0 Then
strTemp = "," & Request.Form(i) & strTemp
strTemp2 = "," & Mid(Request.Form.Key(i),7) & strTemp2
End If
Next
arrVarer=Split(Mid(strTemp, 2), ",")
arrVarenumre=Split(Mid(strTemp2, 2), ",")

For t = LBound(arrVarer) to UBound(arrVarer)
Response.Write "<br><li>" & arrVarenumre(t) & ":" & arrVarer(t)
Next
%>

Hvad er der galt?

--
Venlig hilsen / Best regards,

Rasmus Nielsen.



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

Månedens bedste
Årets bedste
Sidste års bedste