webForumDet fria alternativet

For Each, bara tre poster sparas.

ASP

7 svar · 275 visningar · startad av phred

Medlem sedan nov. 2005314 inlägg
Frågan#1

Hejsan, jag fösöker lägga till en massa matcher i min databas men problemet är att det vill bara petas in 3 matcher sedan är det stopp. Någon som har en bra idé ?

     i = 0
     For Each Value In Request.Form
	i = i + 1
	hlag = fixbug(Trim(Request.Form("hlag")(i)))
	blag = fixbug(Trim(Request.Form("blag")(i)))
	div = Request.Form("divi")(i)
     objConn.Execute("INSERT INTO tbl_matcher (sess, omgID, omg, hlag, blag, divis) VALUES('"& Clng(Request.QueryString("sess")) &"','"& Clng(Request.QueryString("omgID")) &"','"& Clng(Request.QueryString("omg")) &"','"& hlag &"','"& blag &"','"& div &"')") 
	Next
	objConn.close : Set objConn = Nothing
Medlem sedan sep. 2006867 inlägg
#2

Jag brukar alltid dubbelkolla att jag fått det jag förväntade mig, om du inte har gjort det kan det vara en idé att skriva utt hlag, blag och div i loopen och kommentera bort SQLen så länge.

Sen är jag lite osäker på om hur man räknar Values i en Request.Form collection. Har du funderat över att din For Each gäller för samtliga element medan du sedan frågar efter collections som tillhör specifika element. Kan vara en potentiell felkälla.

Någon som faktiskt vet hur det ligger till?

Medlem sedan juni 20019 519 inlägg
#3

for each Values är:

<form>
<input name="ett">
<input name="två">
<input name="tre">
</form>

dvs 3 om jag inte är helt ute?

Medlem sedan sep. 2006867 inlägg
#4

Mm precis, och om man använder typ checkboxar istället så blir ju alla med samma namn bara en Value-post, eller hur?

Medlem sedan nov. 2005314 inlägg
#5

hmm, jag har säkert ställt till detta från början. jag har alltså tio stycken

<input type="text" name="hlag" size="20" />

Hur ska jag bete mig för att lättast lägga till 10-20st matcher i databasen med Hemmalag, Bortalag och division, nu har jag en input text för hemmalag och en för bortalag och en select/option för divisionerna.

Någon som har ett bra tips hur jag löser det ? Ska jag tänka annorlunda ?

Tacksam för hjälp.

Medlem sedan sep. 2006867 inlägg
#6

En lösning som jag kört på en sida är att skapa "name" dynamiskt, dvs när du skriver ut alla dina inputs så kallar du dom för hlag1, hlag2 (mha av en variabel som du räknar upp och hänger på hlag) osv sen så plockar du ut dom i tur och ordning. På så sätt kände jag att jag hade full kontroll även om det tar lite extra energi att generera alla namnen. Fast det märks bara om man kör webserver på en 486:a :)

Och så kan du ju sluta när du träffar på en tom combo...

Men det beror ju lite på hur du tänkt dig <form>-sidan, du har ingen man kan kika på det blir alltid lättare att förstå sammanhanget då!

Medlem sedan nov. 2005314 inlägg
#7

det finns inget att se mer än 25st rader med två st input text och en select/option.

När kla klickar på submit så ska koden i första posten se till att varje textfält där jag fyllt i något ska sparas i databasen.

Ska kolla lite på det där med en variabel som räknar upp, om det inte finns något "smartare"/lättare alternativ ?

Medlem sedan dec. 19996 721 inlägg
#8

I varje loopvarv i listningen lägger du ut ett hiddenvärde, som du plockar från en uppräknad variabel eller ett lämpligt fält från databasen.

<input type="hidden" name="tomatsoppa" value="<%=räknarvärdet%>">

...och i samma varv namnger du alla relevanta formulärelement med räknarvärdet tillagt

<input type="hidden" name="kvastfening<%=räknarvärdet%>" value="">
<input type="hidden" name="snorkeleksem<%=räknarvärdet%>" value="">

På sidan som tar emot värdena använder du sedan listan med värden som hiddenfältet ger, för att plocka ut motsvarande element från loopvarvet

for each tomatsoppa in request.form("tomatsoppa")
   kvastfening=request.form("kvastfening" & tomatsoppa)
   snorkeleksem=request.form("snorkeleksem" & tomatsoppa)
   'Använd värdena
next
260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)