webForumDet fria alternativet

Loopa igenom funktion..

ASP

25 svar · 563 visningar · startad av phazer23

Medlem sedan feb. 2001256 inlägg
Frågan#1

Hej har en funktion (se mitt tidigare inlägg) för att uppdatera matcher i ett matchprogram och en serietabell.. Min fråga är nu kan man på något sätt skicka flera "matcher" genom funktionen på samma gång... Har försökt med

for i = 1 to request.form("matchnr").count
response.write "Index :" & i & "<br>"

men inte fått detta att funka .. Tror jag är lite trött i skallen ....

Medlem sedan dec. 20003 563 inlägg
#2
<%
for each i in request.form("matchnr")
      response.write(Funktionen(request.form(i)))
next
%>
Medlem sedan feb. 2001256 inlägg
#3

Jag får det tine att fungera. Har säkert glömt något enkelt men jag har denna kod nu..

for each i in request.form("matchnr")

intMatchid = request.form("matchnr")
intHresultat =request.form("resultat1")
intBresultat = request.form("resultat2")
response.write(f_checkResultat(request.form(i)) )

next

Men får följande fel

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'f_checkResultat'

/seriesystem/orvar3.asp, line 15

Medlem sedan feb. 2001256 inlägg
#4

Ingen som kan ;) icaaq tillexempel ;)

Medlem sedan juni 200032 967 inlägg
#5

Hur ser funktionen ut?

Medlem sedan feb. 2001256 inlägg
#6

Se denna tråd för funktionen..

http://www.webforum.nu/showthread.php?s=&threadid=81775&forumid=22

Medlem sedan mars 20015 287 inlägg
#7

Nu snurrar du ju till det igen. Du skickar ju bara in ett argument till din funktion.

f_checkResultat ska ju ha tre argument va?

Response.Write f_checkResultat(Cint(f_checkResultat(request.form(i))),Cint(intHresultat), Cint(intBresultat))

För övrigt är det väl en sub du har o ingen funktion.

Medlem sedan feb. 2001256 inlägg
#8

Har denna kod nu...

<%
intMatchid = request.form("matchnr")
intHresultat =request.form("resultat1")
intBresultat = request.form("resultat2")
for each i in request.form("matchnr")

'response.write(f_checkResultat(request.form(i)) )
response.write IntMatchID
Response.Write (f_checkResultat(Cint(IntMatchid)(i),Cint(intHresultat), Cint(intBresultat)))

'response.write(f_checkResultat(Cint(intMatchID)(i),Cint(intHresultat)(i),Cint(intBresultat)(i)))
next

'Response.Write f_checkResultat(Cint(intMatchID)(i),Cint(intHresultat)(i), Cint(intBresultat)(i))

%>

<!-- #include file="fixa2.asp" -->

men då får jag

Microsoft VBScript runtime error '800a000d'

Type mismatch: '[number: 8]'

/seriesystem/orvar3.asp, line 17

Medlem sedan feb. 2001256 inlägg
#9

Nån som har en ide ?

Medlem sedan mars 20015 287 inlägg
#10

Redigerar mitt lilla inlägg då jag kom på att det är ju, givetvis, all tre fälten som ska loopas, eller hur?

Vad heter dina formulärsnamn?

Kan du inte bara döpa dom till typ:

matchnr1
matchnr2
matchnr2 osv

samt samma med dom andra:

intHresultat1 osv

Då är det ju lättare att göra en loop.

Medlem sedan feb. 2001256 inlägg
#11

Jo nu loppar den men den tar resultatet från första matchen och lägger på alla.. provade att flytta

intHresultat =request.form("resultat1")
intBresultat = request.form("resultat2")

efter for each men det blev samma resultat.. Får nog ta och sätta mig och tänka fram en lösning när man itne är trött... ;)

Redigerat efter läst ditt redigerade.. Hur menar du ???

Medlem sedan mars 20015 287 inlägg
#12

Jo precis, o det var ju inte riktigt det som var meningen. Jag tänkte också att det bara var ett fält som ändrades först.

En enkel lösning är:

For i = 1 to 5 '(antalet uppsättningar med matcher.)
	If request.form("intHresultat" & i) <> "" then
		Response.Write (f_checkResultat(Cint(request.form("matchnr" & i)),Cint(request.form("intHresultat" & i)), Cint(request.form("intBresultat" & i)))
	End if
next

Detta bygger på att du döper fälten som i mitt tidigare inlägg.

Medlem sedan feb. 2001256 inlägg
#13

Det var just det jag undrade hur du menade ???? ;)

Medlem sedan mars 20015 287 inlägg
#14

Ditt formulär, hur ser det ut?
Har du inte typ en massa rader med tre kolumner?

matchnr - resultat1 - resultat2 ???

Mitt förslag bygger i så fall på att döpa dessa fält med en siffra på slutet, med början på 1 och sen 2 på nästa rad osv.
Är du med?

Medlem sedan feb. 2001256 inlägg
#15

Jo jag fattar vad du menar nu.. Då blir det en kort asp sats som typ

kurt = 0
do until kurt=10 or Until RecSet.EOF

<input type="text" size="2" maxlength="2" value="<%=RecSet("Resultat1")%>" name="Resultat<% & kurt & %>" class="input">
kurt = kurt + 1

eller har jag missuppfattat dig ?

Medlem sedan mars 20015 287 inlägg
#16

Ah, du skriver ut formuläret med asp. Jag trodde det bara var ett inmatningsformulär, helt tomt du hade.

Men det har ju iofs inte så värst mycket med hur det ser ut på den mottagande sidan att göra.
(Förutom att just talet då.)

Du kan loopa ut det, men du kan ju även hårdkoda om det är så du gjort tidigare.

Medlem sedan feb. 2001256 inlägg
#17

Jo men eftersom jag tänkt ha spelprogrammet redan färdigt och "bara" mata in resultat så måste det ju tas fram med asp ...

Medlem sedan mars 20015 287 inlägg
#18

Jo, det är ju klockrent. Den koden du visar blir ju kanonbra.

Medlem sedan feb. 2001256 inlägg
#19

Tack för all din hjälp.. Nu ´kanske man skulle ta och gå och lägga sig.. Får ta och prova om det funkar som det skall i morgon... Ha det gott

Medlem sedan feb. 2001256 inlägg
#20

Får det inte att fungera :( .. Det måste finnas något sätt att få med resultatet från formuläret till rätt "adress" i databasen :( Varför skall man drabbas av hjärnsläpp när man skall göra något.

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)