Toon posts:

[ASP] waarden optellen in een form

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het probleem is de volgende. Op een website moeten mensen kunnen stemmen. Dit gebeurt als volgt:

1 gebruikers geven een cijfer; de waarde wordt opgeteld bij het veld in een database met het "totaal aan gegeven cijfers".
2 tevens wordt bij iedere uitgebrachte stem "1" opgeteld bij het veld met "aantal gegeven cijfers"

so far so good, maar nu hoe dit moet gebeuren:

1 de form telt de waarde die de gebruiker geeft op bij het opgehaalde "totaal aan gegeven cijfers" en schrijft dit weer weg in het veld.
2 de form telt "1" op "aantal gegeven cijfers" en schrijft dit weer weg in het veld.

so far so good, maar nu de code...

hieronder nog niet de code, maar zoals het er logisch zou moeten werken:
<form name="stemmen" method="POST" action="<%=MM_editAction%>">
<select name="cijfer">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="hidden" name="aantal" value="<%=(rsBla.Fields.Item("Stem_aantal").Value)%>+1">
<input type="hidden" name="totaal" value="<%=(rsBla.Fields.Item("Stem_totaal").Value)%>+cijfer">
<input type="submit" name="Submit" value="Stem">
<input type="hidden" name="MM_update" value="true">
<input type="hidden" name="MM_recordId" value="<%= rsBla.Fields.Item("ID").Value %>">
</form>
Ik begrijp prima dat dit niet werkt, maar slechts een verduidelijking hoe het zou moeten werken. Mijn vraag is, hoe moet ik de optelsom maken van de gekozen waarde uit de "select" cijfer en de opgehaalde waarde.

Kan dit in de hidden field, zoals ik wil? Of moet ik eerst een stukje ASP de waarde laten ophalen en optellen, een variabele van laten maken en dan deze variabele in de hidden weer ophalen?

dank (lang bericht, maar slechts voor de duidelijkheid...)

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 23:00
sorry ik snap niet wat je bedoelt:

is totaal aan gegeven cijfers niet gelijk aan aantal gegeven cijfers?

iig, als je iets uit een DB wil optellen, kan je gewoon UPDATE SQL gebruiken...

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


Verwijderd

Jij wilt dus dat de waarde client-side wordt opgeteld en teruggestuurd? Gewoon niet doen. Absoluut niet doen zelfs.
Client-side scripting kun je gebruiken voor gebruikersgemak, maar je moet berekeningen en dergelijken waarvan het resultaat bijvoorbeeld een database in moet altijd server-side uitvoeren.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Je zit iig clientside en serverside weer eens lekker te mixen met elkaar. Je zult dus eerst moeten bepalen of je het probleem serverside, dan wel clientside wil oplossen.

Verder zijn
HTML:
1
2
3
4
<input type="hidden" name="aantal" value="<%=(rsBla.Fields.Item("Stem_aantal").Value)%>+1">
<input type="hidden" name="totaal" value="<%=(rsBla.Fields.Item("Stem_totaal").Value)%>+cijfer">
...
<input type="hidden" name="MM_update" value="true">

Volstrekt onzinnig om op te nemen.

De 1e kan je oplossen in het updatestatement; het 2e ook.
En het derde lijkt me duidelijk? Of je slaat alle inzendingen op, of je update een poll.

[ Voor 59% gewijzigd door gorgi_19 op 14-06-2003 14:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
nee is onduidelijk, sorry. De achterliggende gedachte is dat het gemiddelde cijfer berekend kan worden, hiervoor is dus het (totale cijfer)/(uitbrachte stemmen) nodig.

Niet aan gedacht om dat via SQL te doen, niet zo bekend mee. Laat me daar nu maar ff mee kloten, klinkt in ieder geval logisch.

edit, gorgi_19: dat is niet wat deze code hoort te doen hoor. gewoon ter verduidelijking waar de termen vandaan komen. Deze code moet ervoor zorgen dat mensen hun stem uitbrengen, niet dat het gemiddelde berekend wordt.

[ Voor 28% gewijzigd door Verwijderd op 14-06-2003 15:07 ]


Verwijderd

Topicstarter
gorgi, je hebt me door, maar ik heb het vorige nu in ieder geval op jouw advies niet meer in de database laten doen, maar gewoon via SQL in de website (?clientside?)

En de tweede kritiek komt er ook op neer dat ik het gewoon via SQL moet doen. Geef me een uur om dat uit te kloten, dan kom ik weer terug.

[ Voor 31% gewijzigd door Verwijderd op 14-06-2003 14:55 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 14 June 2003 @ 14:52:
nee is onduidelijk, sorry. De achterliggende gedachte is dat het gemiddelde cijfer berekend kan worden, hiervoor is dus het (totale cijfer)/(uitbrachte stemmen) nodig.

Niet aan gedacht om dat via SQL te doen, niet zo bekend mee. Laat me daar nu maar ff mee kloten, klinkt in ieder geval logisch.
SQL wordt wel heel makkelijk trouwens..
code:
1
((Cijfer * Aantal uitgebrachte stemmen) + nieuw cijfer) / (Aantal uitgebrachte stemmen + 1)

(Waarbij bovenstaande alleen werkt als je maar 1 cijfer wil weten.. Bij meerdere opties ziet hij er iets anders uit. :) )


Waarbij nieuw cijfer de waarde is die je uit de Form haalt; de rest kunnen allemaal databasevelden zijn..

Nog een extra tip.. Zoek uit wat SQL is. En de meest gangbare combinatie is toch wel om SQL te gebruiken icm een database.. ;)

offtopic:
Als ik nog 10x gorgi ipv gorgi_19 wordt genoemd, ga ik een nickchange overwegen.. :+

[ Voor 26% gewijzigd door gorgi_19 op 14-06-2003 15:00 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
yep gorgi_19 (scheelt weer nickchange), ik ga mijn huiswerk beter doen. Kan dit topic gesloten worden, heeft zo denk ik niet veel zin. Zit op het verkeerde pad. Hoeft nog even niemand moeite te doen mij te helpen.

Badankt iig.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

offtopic:
Topics worden niet gesloten omdat het probleem opgelost is (of in dit geval geconstateerd dat het niet bestaat ;) ). Dit topic is a) nog reagerenswaardig en b) searchwaardig. Mensen die wellicht hetzelfde probleem hebben komen dit topic tegen in de search en kunnen alles nalezen wat gezegd is. Gesloten topics worden vrijwel altijd genegeerd in search-results!!!

Zie ook Welkom in P&W: FAQ en Beleid *updated: 14-04*

Professionele website nodig?


Verwijderd

Vergeet ook niet te checken of er geen ongeldige waarde wordt meegestuurd want als er nu iemand 999 meestuurd dan ligt je poll overhoop en kan je hem niet rechtzetten, suc6 ;)
Je krijgt ook weinig controle over ongeldige stemmen op deze manier!

K, kwou je gewoon een tip geven nu :X ik

[ Voor 9% gewijzigd door Verwijderd op 14-06-2003 16:01 ]


Verwijderd

Topicstarter
sorry curry, was ervoor om te zorgen dat anderen zich niet uit de naad werken om een zijspoor van mij op te lossen. Is een beetje lullig. Bij deze, voor mij hoeven reacties niet meer. Topic kan niet gesloten worden.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

prinsroy: Je ziet aan aspfreakout's reactie dat er nog nuttige reacties kunnen komen en zijdelingse tips :) Verder dus nu weer on-topic of af laten zakken ;)

Professionele website nodig?

Pagina: 1