|
| 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.
| |
|
|