[ASP] Loop met Split functie

Pagina: 1
Acties:

  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
Ik heb een overzichts-pagina met achter ieder record een checkbox. De checkboxen worden dynamische gegenereerd.

Na submit wordt op de volgende pagina het resultaat van de checkboxen met de functie Split in een array geplaatst.

Nu werkt dat prima met de checkboxen, echter is er nog een variabele die als een string wordt meegegeven en "ge-Split" moet worden.

Ik heb het nu als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
data  = Split(Request.Form("chkInc"),",")
data2 = Split(Request.Form("Ordernummer"),",")
For i = 0 To Ubound(data)
For y = 0 To Ubound(data2)
set Incasso_update = Server.CreateObject("ADODB.Command")
Incasso_update.ActiveConnection = MM_Artiest_STRING
Incasso_update.CommandText = "UPDATE Incasso  SET Incasso_status_F =  ("&data(i)&")  WHERE Ordernummer_F = ("&data2(y)&")"
Incasso_update.CommandType = 1
Incasso_update.CommandTimeout = 0
Incasso_update.Prepared = true
Incasso_update.Execute()
Next
Next


Bij het submitten krijg ik geen foutmelding, echter als er 2 records stonden en ik had er maar 1 aangeklikt, dan verdwijnen ze toch allebei.

Deze data wordt gepost na het aanvinken van 1 checkbox uit een totaal van 2:

POST Data:
Ordernummer=205&chkInc=2&Ordernummer=208&Submit=Opslaan

Iemand een idee hoe dit op te lossen ?

Pay peanuts get monkeys !


Verwijderd

ermz... blijkbaar worden er toch twee order nummers meegegeven als je er 1 submit. staat in de post data. snap ook niet echt wat die dingen met elkaar te maken hebben. kan je misschien wat meer code/bedoelingen posten?

en met verdwijnen bedoel je hopelijk dat er een filter op je pagina staat die die nieuwe statussen niet laat zien?

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Er is kennelijk iets mis met of je query of met de data waarmee de query wordt uitgevoerd. Ik denk eerlijk gezegd dat het laatste het meest logisch is.
Wat ik zelf vaak doe is elke checkbox dezelfde name mee te geven en vervolgens één Request.Form () i.c.m. IN()
ASP:
1
2
3
4
data = Request.Form("form-name") 

sqlString = "UPDATE tabel SET field='value' WHERE ID IN (" & data & ")"
Con.Execute sqlString

Dit werkt echter alleen wanneer het veld-type boolean is, maar dit is "Incasso_status_F" volgens mij :)

[ Voor 18% gewijzigd door DeverauX op 19-05-2003 14:49 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
Ik heb het nu als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<%
data2 = Request.Form("Ordernummer")
data  = Split(Request.Form("chkInc"),",")
For i = 0 To Ubound(data)
set Incasso_update = Server.CreateObject("ADODB.Command")
Incasso_update.ActiveConnection = MM_Artiest_STRING
Incasso_update.CommandText = "UPDATE Incasso  SET Incasso_status_F =  ("&data(i)&")  WHERE Ordernummer_F IN (" & data2 & ")"
Incasso_update.CommandType = 1
Incasso_update.CommandTimeout = 0
Incasso_update.Prepared = true
Incasso_update.Execute()
Next
%>


Maar ik krijg nog steeds hetzelfde effect. Namelijk dat alle records "verdwijnen" (alleen de status verandert).

De POST data die ik krijg als ik van de 3 records er 1 vink, is als volgt:

Ordernummer=205&Ordernummer=208&Ordernummer=215&chkInc=2&Submit=Opslaan

Iemand een idee ?

Pay peanuts get monkeys !


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Wat je nu doet is ook raar, je doet nu 2 keer een update op hetzelfde record.. Maar je houdt wel dezelfde id..

Dus als je x en y update op hetzelfde record zal ie alleen y onthouden en doe je een update voor niks (de x)

[ Voor 35% gewijzigd door Jaspertje op 19-05-2003 16:53 ]


  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
Kan iemand mij vertellen hoe ik het volgende kan doen, maar dan met 2 Request.Forms:

code:
1
2
3
4
data = Request.Form("form-name") 

sqlString = "UPDATE tabel SET field='value' WHERE ID IN (" & data & ")"
Con.Execute sqlString


Ik heb namelijk de volgende situatie:

Afbeeldingslocatie: http://www.xs4all.nl/~uwsite/got/checkbox.gif
(bovenstaande wordt dus dynamisch gegenereerd, al naar gelang het aantal records in de database)

Nu lukt het mij om de checkbox af te vangen in de volgende pagina, omdat die wel of geen waarde mee geeft, maar de textbox geeft altijd een waarde mee.

Hoe kan ik die kwijt in bovenstaande statement ?

[ Voor 14% gewijzigd door Dutch_guy op 19-05-2003 22:21 ]

Pay peanuts get monkeys !


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Je moet zorgen dat de textbox dezelfde name heeft als de value van de checkbox dan weet je welke waarde je moet hebben

Dus iets in deze forum
HTML:
1
2
<input type=checkbox name="allemaalhetzelfde" value="1"><input type=text name="1">
<input type=checkbox name="allemaalhetzelfde" value="2"><input type=text name="2">


En nu weet je dat als je checkbox 1 aanzet dat je dus text 1 ook moet uitlezen

[ Voor 92% gewijzigd door Jaspertje op 19-05-2003 22:46 . Reden: voorbeeldje ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Hoe kan ik die kwijt in bovenstaande statement ?
Dit gaat niet lukken. Deze methode werkt namelijk alleen wanneer je een veld wilt updaten wat slechts twee type waarden kan bevatten en niet wanneer je een input-veld hebt wat verschillende waarden kan bevatten.

Wat wel een mogelijkheid is is dat je zoals Jaspertje zei is zowel de checkbox als je input-veld dezelfde name te geven en vervolgens in een loop alle waarden van de form-collectie uit te lezen.
ASP:
1
2
3
For each inputField in Request.Form
'code voor het updaten van de records
Next

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones

Pagina: 1