Toon posts:

[asp] hidden fields opvragen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een systeem dat een grote hoeveelheid data uit een database haalt en doorstuurt naar een andere pagina (fysiek gescheiden van elkaar).

Het lastige van deze situatie is dat er van te voren niet bekend is hoeveel variabelen er doorgestuurd gaan worden. Bovendien zijn er ook variabelen gekoppeld aan elkaar.

Ik zal proberen het te verduidelijken met een voorbeeld. Stel ik heb een database over boeken. Die boeken wil ik allemaal doorgeven aan een andere pagina. Inclusief de auteurs.

code:
1
2
3
4
5
<input type="hidden" name="boek_1" value="boek1" >
<input type="hidden" name="boek_1_auteur_1" value="auteur1" >
<input type="hidden" name="boek_2" value="boek2" >
<input type="hidden" name="boek_2_auteur_1" value="auteur2" >
<input type="hidden" name="boek_2_auteur_2" value="auteur3" >


het gaat nu dus om auteurs, gekoppeld aan boeken.

Mijn vraag is nu, hoe kan ik dit afvangen op zo'n manier dat ik, zonder dat ik weet om hoeveel boeken en auteurs het gaat, ik de juiste auteurs bij de juiste boeken heb op de ontvangstpagina?

code:
1
2
3
4
5
6
7
For Each Item in Request.Form
For iCount = 1 to Request.Form(Item).Count

Response.Write Item & " = " & Request.Form(Item)(iCount) & "<br>"

Next 
Next


Bijvoorbeeld, is een manier om alle velden af te vangen. Maar ik heb geen idee hoe ik nu alle velden weer moet koppelen.

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

Jaspertje

Max & Milo.. lief

Is het geen idee om een extra hidden field te maken met aantal boeken? en daarmee danverder te werken?

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-08 07:26
HTML:
1
2
3
4
<input type="hidden" name="boek[1][titel]" value="boek1">
<input type="hidden" name="boek[1][auteur]" value="auteur1">
<input type="hidden" name="boek[2][titel]" value="boek2">
<input type="hidden" name="boek[2][auteur]" value="auteur2">

Zo kan je van de onstade array het aantal entries laten 'tellen'.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


Verwijderd

Topicstarter
TRON schreef op 05 november 2003 @ 15:43:
HTML:
1
2
3
4
<input type="hidden" name="boek[1][titel]" value="boek1">
<input type="hidden" name="boek[1][auteur]" value="auteur1">
<input type="hidden" name="boek[2][titel]" value="boek2">
<input type="hidden" name="boek[2][auteur]" value="auteur2">

Zo kan je van de onstade array het aantal entries laten 'tellen'.
Aan die oplossing heb ik ook gedacht, maar dit werkt toch maar 1 laag diep?

Stel dat je van die auteurs ook nog de kinderen wilt meenemen, bv...

Verwijderd

Topicstarter
Jaspertje schreef op 05 november 2003 @ 15:30:
Is het geen idee om een extra hidden field te maken met aantal boeken? en daarmee danverder te werken?
dat zou in feite neerkomen op:

- veldje met aantal boeken meesturen
- veldje met aantal auteurs meesturen
- veldje met aantal kinderen auteurs meesturen

dan heb ik wel de juiste aantallen, maar als ik auteur nr 4 heb, weet ik nog niet welk boek ie geschreven heeft.

Verwijderd

Wat je zou kunnen proberen is het volgende (heb dit ooit al eens gedaan):

HTML:
1
2
3
<input type="hidden" name="boek1" value="boek1,auteur1,auteur11,kind1">
<input type="hidden" name="boek2" value="boek2,auteur2,auteur22,kind2">
<input type="hidden" name="boek3" value="boek3,auteur3,auteur33,kind3">


Daarna kun je de waardes in een array zetten dmv een Split(string, ",")
Natuurlijk kun je ook een ander karakter gebruiken zoals een pipe -> boek|auteur|etc

Je hebt zo altijd alle data van elk boek bij elkaar.
Tis maar een suggestie, misschien zijn er betere methodes

[ Voor 16% gewijzigd door Verwijderd op 05-11-2003 16:26 ]


Verwijderd

Topicstarter
Verwijderd schreef op 05 november 2003 @ 16:25:
Wat je zou kunnen proberen is het volgende (heb dit ooit al eens gedaan):

HTML:
1
2
3
<input type="hidden" name="boek1" value="boek1,auteur1,auteur11,kind1">
<input type="hidden" name="boek2" value="boek2,auteur2,auteur22,kind2">
<input type="hidden" name="boek3" value="boek3,auteur3,auteur33,kind3">


Daarna kun je de waardes in een array zetten dmv een Split(string, ",")
Natuurlijk kun je ook een ander karakter gebruiken zoals een pipe -> boek|auteur|etc

Je hebt zo altijd alle data van elk boek bij elkaar.
Tis maar een suggestie, misschien zijn er betere methodes
klinkt op zich goed, maar hoe moet het dan als auteur 2 ook bij boek 1 hoort?
Bij splitten op komma weet je bovendien nog niet hoeveel velden er aan komen.
Ik bedoel, stel dat auteur 1 in dit voorbeeld 6 kinderen heeft. Wat dan?

EDIT: bovendien is de kans groot dat het bij mijn situatie zal gaan om enkele tientallen velden per laag :)
dus 10 auteurs per boek, 10 kinderen per auteur enz.

[ Voor 16% gewijzigd door Verwijderd op 05-11-2003 16:34 ]


Verwijderd

Maakt het weer wat moeilijker. Ik begin me trouwens af te vragen waarom je alle data in die pagina wil hebben. Als je alleen de id's van de boeken hebt dan kun je op die nieuwe pagina toch een nieuwe query uitvoeren en zo de corresponderende data uit de database trekken?

Of zit ik nu fout met de denkwijze? Ik begrijp niet goed waarom je alle data nodig hebt op de beginpagina.

Verwijderd

Topicstarter
Verwijderd schreef op 05 november 2003 @ 16:47:
Maakt het weer wat moeilijker. Ik begin me trouwens af te vragen waarom je alle data in die pagina wil hebben. Als je alleen de id's van de boeken hebt dan kun je op die nieuwe pagina toch een nieuwe query uitvoeren en zo de corresponderende data uit de database trekken?

Of zit ik nu fout met de denkwijze? Ik begrijp niet goed waarom je alle data nodig hebt op de beginpagina.
het gaat om fysiek gescheiden pagina's. De database hangt onder de beginpagina, maar de pagina waar het naar toe moet heeft die database niet.

  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Verwijderd schreef op 05 november 2003 @ 16:25:
Wat je zou kunnen proberen is het volgende (heb dit ooit al eens gedaan):

HTML:
1
2
3
<input type="hidden" name="boek1" value="boek1,auteur1,auteur11,kind1">
<input type="hidden" name="boek2" value="boek2,auteur2,auteur22,kind2">
<input type="hidden" name="boek3" value="boek3,auteur3,auteur33,kind3">
anders dit, waar de eerste rij waardes het aantal opvolgende items voorstelt:

HTML:
1
2
3
<input type="hidden" name="boek1" value="1,2,1,boek1,auteur1,auteur11,kind1">
<input type="hidden" name="boek2" value="1,2,2,boek2,auteur2,auteur22,kind2,kind22">
<input type="hidden" name="boek3" value="1,1,1,boek3,auteur3,kind3">

Zo weet je hoeveel items van welk soort er in de gesplitte array zitten

Probeer je deze data naar een andere site te posten of blijft het op dezelfde server? Ik weet dat niet alle servers data accepteren die van buitenaf worden gepost (kwestie van veiligheid)

[ Voor 40% gewijzigd door guanpedro op 05-11-2003 17:05 ]

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


Verwijderd

Of, je geeft een substring mee zoals:

bk_boek1, bk_boek2, aut_1, aut_2, aut_3, knd_1,knd_2, etc, etc

vergelijk de strings die uit de array komen.
Als er bk_ voor staat dan is het een boek
staat er aut_ voor dan is het een auteur, knd_ is een kind etc etc etc.

De substring kun je natuurlijk gewoon hierna strippen als je eenmaal weet wat het is.

Die hier boven is ook erg goed trouwens.

[ Voor 13% gewijzigd door Verwijderd op 05-11-2003 17:17 ]


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Kan je niet beter met Session objecten gaan werken, of opnieuw uit de database halen?

Aangezien de gegevens in het hidden field als het goed is niet veranderen door de gebruikers. Op de manier die je nu gebruikt werk je fouten in de hand

Programmer - an organism that turns coffee into software.


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

Jaspertje

Max & Milo.. lief

Misschien ook niet helemaal de bedoeling en ook niet wat je zoekt, maar kan je geen XML string maken? en die doorsturen?

Verwijderd

Topicstarter
guanpedro schreef op 05 november 2003 @ 16:58:
[...]


anders dit, waar de eerste rij waardes het aantal opvolgende items voorstelt:

HTML:
1
2
3
<input type="hidden" name="boek1" value="1,2,1,boek1,auteur1,auteur11,kind1">
<input type="hidden" name="boek2" value="1,2,2,boek2,auteur2,auteur22,kind2,kind22">
<input type="hidden" name="boek3" value="1,1,1,boek3,auteur3,kind3">

Zo weet je hoeveel items van welk soort er in de gesplitte array zitten

Probeer je deze data naar een andere site te posten of blijft het op dezelfde server? Ik weet dat niet alle servers data accepteren die van buitenaf worden gepost (kwestie van veiligheid)
Da's inderdaad een mogelijkheid. Wel veel werk, maar het zou moeten kunnen werken. Ik zal het eens proberen, maar hoop wel op betere manier :)

Verwijderd

Topicstarter
Verwijderd schreef op 05 november 2003 @ 17:08:
Of, je geeft een substring mee zoals:

bk_boek1, bk_boek2, aut_1, aut_2, aut_3, knd_1,knd_2, etc, etc

vergelijk de strings die uit de array komen.
Als er bk_ voor staat dan is het een boek
staat er aut_ voor dan is het een auteur, knd_ is een kind etc etc etc.

De substring kun je natuurlijk gewoon hierna strippen als je eenmaal weet wat het is.

Die hier boven is ook erg goed trouwens.
Die werkt niet, want je weet dan wel wat wat is, maar niet wat bij elkaar hoort.
Ik ontkom waarschijnlijk niet aan methode hierboven, maar is wel veel handmatig werk :)

Verwijderd

Topicstarter
LuCarD schreef op 05 november 2003 @ 17:21:
Kan je niet beter met Session objecten gaan werken, of opnieuw uit de database halen?

Aangezien de gegevens in het hidden field als het goed is niet veranderen door de gebruikers. Op de manier die je nu gebruikt werk je fouten in de hand
De pagina's zijn fysiek gescheiden van elkaar. Alleen de begin pagina heeft een database onder zich te hangen.

Verwijderd

Topicstarter
Jaspertje schreef op 05 november 2003 @ 18:54:
Misschien ook niet helemaal de bedoeling en ook niet wat je zoekt, maar kan je geen XML string maken? en die doorsturen?
ik denk dat het omzetten van die velden naar xml nog meer werk is. Bovendien weet ik te weinig van xml af en heb geen zin om alleen voor dit onderdeel van mijn werk een xml cursus te gaan doen ;)

In ieder geval bedank ik iedereen voor de reacties. Is er niemand anders die iets dergelijks heeft moeten doen?

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
je kunt zoiezo de veldnamen ook opvragen dmv Request.Form.key(iCounter)

en daarna in een array stoppen lijkt me het handigst

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Verwijderd schreef op 05 november 2003 @ 23:34:
[...]


Die werkt niet, want je weet dan wel wat wat is, maar niet wat bij elkaar hoort.
Ik ontkom waarschijnlijk niet aan methode hierboven, maar is wel veel handmatig werk :)
Je weet wel wat bij elkaar hoort. Je krijgt namelijk niet:

HTML:
1
<input type="hidden" name="boek1" value="boek1,auteur1,auteur11,kind1">


maar:

HTML:
1
<input type="hidden" name="boek1" value="bk_boek1,aut_auteur1,aut_auteur11,knd_kind1">


Je weet dan precies wat er bij boek1 hoort en wat voor velden het zijn.

De oplossing van Guanpedro is trouwens niet veel typwerk. Gewoon een kwestie van records tellen met een query en voila, je hebt je waardes die je in het begin nodig hebt.

[ Voor 19% gewijzigd door Verwijderd op 06-11-2003 11:51 ]

Pagina: 1