15. april 2004 - 10:55Der er
14 kommentarer og 2 løsninger
for each item in request.form problem
Jeg står med et rimeligt akut problem, derfor det høje pointantal.
Jeg har en formular hvor indholdet bliver trukket fra en database med følgende data:
varenr varenavn
Brugeren skal så kunne bestille varer ved at udfylde et felt der hedder koliantal og et felt der hedder antalkg, altså 2 stk. inputfelter ud for hvert varenr.
Når brugeren så submitter formen til bestilling.asp, skal bestilling.asp gennemløbe hvert enkelt varenr i formularen og udskrive en bestillingsseddel hvor der fremgår følgende:
Varenr koliantal (kommer fra det ene inputfelt) antalkg (kommer fra det andet inputfelt)
Den skal ikke medtage de varenr hvor hverken koliantal eller antalkg er udfyldt, men kun dem hvor mindst ét af felterne er udfyldt
Kan det i det hele taget lade sig gøre på denne måde eller hvad gør jeg ? Pga. tidsnød vil konkrete kodeeksempler være at foretrække, men råd modtages med kyshånd :o)
vil dette sige, at du har et formular hvor du har mange felt der hedder 'varenr', mange felt der hedder 'koliantal' og mange felt der hedder 'antalkg' ? Hvis du har dette, så bør du nok først og fremmest lave dette om, så du knytter antalkg og koliantal til et specifikt varenummer. Fx:
på denne måde kan du så meget hurtig identificere dine formfelter uden at bruge en for each på dit formular. så kan du hellere bruge dette:
Dim strVareNr : strVareNr = Request( "varenr" ) Dim arrVareNr : arrVareNr = Split( strVareNr, "," ) Dim strKoliValue, strKGValue for i = 0 To Ubound( arrVareNr ) strKoliValue = Request( "koliantal_" & arrVareNr( i ) ) strKGValue = Request( "antalkg_" & arrVareNr( i ) ) if( strKoliValue <> "" OR strKGValue <> "" ) then ' gør noget end if next
på denne måde har du hele tiden knytningen mellem varenr og de felter der hører til dette varenummer (hvis du nu ikke har dette allerede, men så bør du jo skrive dette ;o] )
er ikke så stiv i VB(koder selv i JS), men prøv sådan:
counter=0 For Each varItem In Request.Form ' eller QueryString If counter = 0 Then tempItem = varItem tempVal = Request.Form(varItem).Item counter = 1 Else If tempVal <> "" or Request.Form(varItem).Item <> "" Then Response.Write(tempItem & " = " & tempVal & "<br />") Response.Write(varItem & " = " & Request.Form(varItem).Item & "<br />") End If Next
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.