Bekijk Volledige Versie : Bestelformulier in php
Hallo,
Ik heb een bestelformulier in php gemaakt voor tshirten en nog enkele
andere artikelen.
Nu had ik op het eind van het formulier drie knoppen willen maken:
Bereken
Bestelling plaatsen
Formulier wissen.
De laatste is vrij duidelijk, de tweede in rij (Bestelling plaatsen)
dient dus om het formulier door te sturen naar de persoon die het moet
hebben.
Voor de eerset knop "Bereken" had ik graag gewild dat wanneer mensen erop
klikken, de berekening al wel gebeuren, maar dat er nog niets besteld
wordt, met andere woorden: de mensen moeten de totaalprijs in het
formulier kunnen aflezen.
Hoe kan ik dat 'bekomen' in php?
Een knop maken met type="submit" lukt niet, dan gaat hij het versturen,
vandaar mijn vraag dus ...
Thx!
--
Groeten,
StriKe
http://www.internetfreakz.be
Warden Dave
17/04/04, 16:45
"StriKe" <usenet@internetfreakz.be> wrote:
> Nu had ik op het eind van het formulier drie knoppen willen maken:
>
> Bereken
> Bestelling plaatsen
> Formulier wissen.
>
> De laatste is vrij duidelijk, de tweede in rij (Bestelling plaatsen)
> dient dus om het formulier door te sturen naar de persoon die het moet
> hebben.
>
> Voor de eerset knop "Bereken" had ik graag gewild dat wanneer mensen erop
> klikken, de berekening al wel gebeuren, maar dat er nog niets besteld
> wordt, met andere woorden: de mensen moeten de totaalprijs in het
> formulier kunnen aflezen.
>
> Hoe kan ik dat 'bekomen' in php?
Je zult de verzamelde data dan mee moeten nemen naar een volgende
(tussen) pagina alwaar je, bij 'binnenkomst', de benodigde berekeningen
doen kunt en het resultaat weergeven. Je zou het berekenen in 1e instantie
overigens _ook_ gewoon m.b.v. JavaScript kunnen proberen te doen.
Vanaf de pagina met gedane berekeningen post (...) je dan het resultaat.
WD
StriKe <usenet@internetfreakz.be> schreef op Sat, 17 Apr 2004 14:26:44 GMT:
> Hallo,
knip
> Nu had ik op het eind van het formulier drie knoppen willen maken:
>
> Bereken
> Bestelling plaatsen
> Formulier wissen.
>
Zoals Warden Dave al meldde is dit handiger om in Javascript te doen.
De bereken knop kun je zelfs compleet overbodig maken d.m.v. onChange
evenhandlers in Javascript. Elke keer als er een waarde veranderd in het
formulier kun je dan een te schijven functie bereken() aanroepen, die het
totaal berekend en weergeeft in bijvoorbeeld een text-input veld.
Gebruik van javascript is aan te raden, maar alleen als het hier geen
absoluut noodzakelijk proces betreft. Mensen kunnen javascript uit hebben
staan en zullen dan deze functionaliteit missen.
Groeten,
Steven
Daniel Tryba
17/04/04, 17:35
StriKe <usenet@internetfreakz.be> wrote:
> Voor de eerset knop "Bereken" had ik graag gewild dat wanneer mensen erop
> klikken, de berekening al wel gebeuren, maar dat er nog niets besteld
> wordt, met andere woorden: de mensen moeten de totaalprijs in het
> formulier kunnen aflezen.
>
> Hoe kan ik dat 'bekomen' in php?
>
> Een knop maken met type="submit" lukt niet, dan gaat hij het versturen,
> vandaar mijn vraag dus ...
Ehhhh, je kan gewoon meerdere submit buttons hebben. In je afhandelende
php pagina moet je dus even onderscheid maken tussen de bestel en
bereken. Je kunt het natuurlijk met clientside scripting doen zoals al
is aangedragen maar het is natuurlijk handig om de bereken
functionaliteit (die je toch al in ss moet hebben aangezien men niet op
(j|vb)script kan vertrouwen) als fallback aan te bieden.
--
Daniel Tryba
StriKe <usenet@internetfreakz.be> schreef in
news:Xns94CEA756AC7E7usenetinternetfreakz@195.130. 132.70:
Hello,
Thx voor jullie reacties.
Heb dan maar besloten om een tussenpagina in php te gebruiken, redenen:
ik ken 'niets' van javascript en bovendien: 'k vind het nogal nadelig dat
mensen dan zelf 'beslissen' of het gaat of niet, met php lukt het
'altijd' ...
Thx!
--
Groeten,
StriKe
http://www.internetfreakz.be
Warden Dave
17/04/04, 18:55
"StriKe" <usenet@internetfreakz.be> wrote:
> StriKe <usenet@internetfreakz.be> schreef:
> Thx voor jullie reacties.
> Heb dan maar besloten om een tussenpagina in php te gebruiken, redenen:
> ik ken 'niets' van javascript en bovendien: 'k vind het nogal nadelig dat
> mensen dan zelf 'beslissen' of het gaat of niet, met php lukt het
> 'altijd' ...
Zo was het niet helemaal bedoeld. Wat je normaal zou doen is eerder
al waarnemen dat JavaScript gebruikt kan worden, of je schrijft bijv. de
'Totaal'-velden van je formulier m.b.v. JavaScript. Hoe ook, alleen de
JvaScriptMoedigen krijgen FORMuliervelden voor de totalen plus
bruikbaar script om die totalen te berekenen.
Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die 'tussen-
pagina' weergeven.
Ik nieuwsgroep nl.internet.www.ontwerp lopen vast wel mensen rond
die je vertellen kunnen hoe zo'n client-side script er uit zou moeten zien...
(Hier mag ik je niet vertellen hoe e.e.a. moet omdat 'het almachtige
charter' dat niet toestaat.)
WD
Warden Dave
17/04/04, 18:55
"StriKe" <usenet@internetfreakz.be> wrote:
> StriKe <usenet@internetfreakz.be> schreef:
> Thx voor jullie reacties.
> Heb dan maar besloten om een tussenpagina in php te gebruiken, redenen:
> ik ken 'niets' van javascript en bovendien: 'k vind het nogal nadelig dat
> mensen dan zelf 'beslissen' of het gaat of niet, met php lukt het
> 'altijd' ...
Zo was het niet helemaal bedoeld. Wat je normaal zou doen is eerder
al waarnemen dat JavaScript gebruikt kan worden, of je schrijft bijv. de
'Totaal'-velden van je formulier m.b.v. JavaScript. Hoe ook, alleen de
JvaScriptMoedigen krijgen FORMuliervelden voor de totalen plus
bruikbaar script om die totalen te berekenen.
Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die 'tussen-
pagina' weergeven.
In nieuwsgroep nl.internet.www.ontwerp lopen vast wel mensen rond
die je vertellen kunnen hoe zo'n client-side script er uit zou moeten zien...
(Hier mag ik je niet vertellen hoe e.e.a. moet omdat 'het almachtige
charter' dat niet toestaat.)
WD
"Warden Dave" <warden_dave@web.de> schreef in
news:c5rn6k$4o185$1@ID-223268.news.uni-berlin.de:
> Zo was het niet helemaal bedoeld. Wat je normaal zou doen is eerder
> al waarnemen dat JavaScript gebruikt kan worden, of je schrijft bijv.
> de 'Totaal'-velden van je formulier m.b.v. JavaScript. Hoe ook, alleen
> de JvaScriptMoedigen krijgen FORMuliervelden voor de totalen plus
> bruikbaar script om die totalen te berekenen.
>
> Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
> niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die
> 'tussen- pagina' weergeven.
>
> In nieuwsgroep nl.internet.www.ontwerp lopen vast wel mensen rond
> die je vertellen kunnen hoe zo'n client-side script er uit zou moeten
> zien... (Hier mag ik je niet vertellen hoe e.e.a. moet omdat 'het
> almachtige charter' dat niet toestaat.)
>
> WD
Ik denk dat dit wel een serieuze hint is om eens te raden te gaan in die
ng ;)
Eerst even zien of er op google geen tutorials of zo te vinden zijn,
anders ben ikzelf in overtreding :o)
Thx voor je reply!
--
Groeten,
StriKe
http://www.internetfreakz.be
Nico Coesel
19/04/04, 15:05
"Warden Dave" <warden_dave@web.de> wrote:
>"StriKe" <usenet@internetfreakz.be> wrote:
>> StriKe <usenet@internetfreakz.be> schreef:
>
>> Thx voor jullie reacties.
>> Heb dan maar besloten om een tussenpagina in php te gebruiken, redenen:
>> ik ken 'niets' van javascript en bovendien: 'k vind het nogal nadelig dat
>> mensen dan zelf 'beslissen' of het gaat of niet, met php lukt het
>> 'altijd' ...
>
>Zo was het niet helemaal bedoeld. Wat je normaal zou doen is eerder
>al waarnemen dat JavaScript gebruikt kan worden, of je schrijft bijv. de
>'Totaal'-velden van je formulier m.b.v. JavaScript. Hoe ook, alleen de
>JvaScriptMoedigen krijgen FORMuliervelden voor de totalen plus
>bruikbaar script om die totalen te berekenen.
>
>Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
>niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die 'tussen-
>pagina' weergeven.
Maar dan doe je het werk eigenlijk 2 keer en bij veranderende
formules/constanten (bijvoorbeeld BTW of een staffelschema) moet je
dus 2 totaal verschillende stukken software gaan onderhouden.
Zoiets kun je overigens nog veel slimmer aanpakken. In een sessie
variabele maak je een winkelmandje. Vanuit de artikelpagina's stop je
steeds producten in het winkelmandje. Als een product wordt
verwijderd, dan vlag je het product af als verwijderd. Vervolgens kun
je via een aparte pagina de inhoud van het winkelmandje bekijken. Dan
heb je eigenlijk al een mini-webwinkelsysteem gemaakt.
--
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
Warden Dave
19/04/04, 15:15
"Nico Coesel" <nico@puntnl.niks> wrote:
> "Warden Dave" <warden_dave@web.de> wrote:
> >Zo was het niet helemaal bedoeld. Wat je normaal zou doen is eerder
> >al waarnemen dat JavaScript gebruikt kan worden, of je schrijft bijv. de
> >'Totaal'-velden van je formulier m.b.v. JavaScript. Hoe ook, alleen de
> >JavaScriptMoedigen krijgen FORMuliervelden voor de totalen plus
> >bruikbaar script om die totalen te berekenen.
> >Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
> >niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die 'tussen-
> >pagina' weergeven.
> Maar dan doe je het werk eigenlijk 2 keer en bij veranderende
> formules/constanten (bijvoorbeeld BTW of een staffelschema) moet je
> dus 2 totaal verschillende stukken software gaan onderhouden.
Niet waar. In niwo heb ik al een simpel voorbeeld gegeven waarin
je ontdekken kunt dat de 'constanten', zoals stukprijzen en ook foutmeldingen
etc. slechts 1x gedefinieerd behoeven te worden. Je mist iets simpels...
[Voor client-side gebruik schrijf (print/echo) je de benodigde gegevens
gewoon uit...]
> Zoiets kun je overigens nog veel slimmer aanpakken. In een sessie
> variabele maak je een winkelmandje. Vanuit de artikelpagina's stop je
> steeds producten in het winkelmandje. Als een product wordt
> verwijderd, dan vlag je het product af als verwijderd. Vervolgens kun
> je via een aparte pagina de inhoud van het winkelmandje bekijken. Dan
> heb je eigenlijk al een mini-webwinkelsysteem gemaakt.
Heel fijn & geweldig, maar deze uiterst ruime beschrijving heeft bitter
weinig te maken met het al-of-niet gebruiken van client-side script.
WD
Nico Coesel
20/04/04, 01:35
"Warden Dave" <warden_dave@web.de> wrote:
>"Nico Coesel" <nico@puntnl.niks> wrote:
>> "Warden Dave" <warden_dave@web.de> wrote:
>
>> >Zo was het niet helemaal bedoeld. Wat je normaal zou doen is eerder
>> >al waarnemen dat JavaScript gebruikt kan worden, of je schrijft bijv. de
>> >'Totaal'-velden van je formulier m.b.v. JavaScript. Hoe ook, alleen de
>> >JavaScriptMoedigen krijgen FORMuliervelden voor de totalen plus
>> >bruikbaar script om die totalen te berekenen.
>
>> >Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
>> >niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die 'tussen-
>> >pagina' weergeven.
>
>> Maar dan doe je het werk eigenlijk 2 keer en bij veranderende
>> formules/constanten (bijvoorbeeld BTW of een staffelschema) moet je
>> dus 2 totaal verschillende stukken software gaan onderhouden.
>
>Niet waar. In niwo heb ik al een simpel voorbeeld gegeven waarin
>je ontdekken kunt dat de 'constanten', zoals stukprijzen en ook foutmeldingen
>etc. slechts 1x gedefinieerd behoeven te worden. Je mist iets simpels...
Was het maar zo simpel... Wat tekstjes server side invoegen in een
javascript ligt voor de hand. Maar... zelfs bij de meest simpele
webwinkels vragen klanten al snel om staffelschema's, producten met
allerlei kenmerken die ook nog eens de prijs bepalen, etc. Daarvoor
kun je natuurlijk een routine maken die alle situaties (niet dus, want
Murphy is altijd van toepassing) aankan. Die routine maak je dan 2
keer in 2 verschillende talen en voila, je hebt een leuk
onderhoudsprobleempje.
>> Zoiets kun je overigens nog veel slimmer aanpakken. In een sessie
>> variabele maak je een winkelmandje. Vanuit de artikelpagina's stop je
>> steeds producten in het winkelmandje. Als een product wordt
>> verwijderd, dan vlag je het product af als verwijderd. Vervolgens kun
>> je via een aparte pagina de inhoud van het winkelmandje bekijken. Dan
>> heb je eigenlijk al een mini-webwinkelsysteem gemaakt.
>
>Heel fijn & geweldig, maar deze uiterst ruime beschrijving heeft bitter
>weinig te maken met het al-of-niet gebruiken van client-side script.
Maar gelukkig wel alles met een bestelformulier in PHP :-)
--
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
Warden Dave
20/04/04, 08:05
"Nico Coesel" <nico@puntnl.niks> wrote in message
> "Warden Dave" <warden_dave@web.de> wrote:
>>> >Bij een POST kan dan het ontvangende script waarnemen dat er eventueel
>>> >niet al een Totaal aanwezig is en zelf aan het rekenen slaan en die 'tussen-
>>> >pagina' weergeven.
>>> Maar dan doe je het werk eigenlijk 2 keer en bij veranderende
>>> formules/constanten (bijvoorbeeld BTW of een staffelschema) moet je
>>> dus 2 totaal verschillende stukken software gaan onderhouden.
>>Niet waar. In niwo heb ik al een simpel voorbeeld gegeven waarin
>>je ontdekken kunt dat de 'constanten', zoals stukprijzen en ook foutmeldingen
>>etc. slechts 1x gedefinieerd behoeven te worden. Je mist iets simpels...
> Was het maar zo simpel... Wat tekstjes server side invoegen in een
> javascript ligt voor de hand. Maar... zelfs bij de meest simpele
> webwinkels vragen klanten al snel om staffelschema's, producten met
> allerlei kenmerken die ook nog eens de prijs bepalen, etc. Daarvoor
> kun je natuurlijk een routine maken die alle situaties (niet dus, want
> Murphy is altijd van toepassing) aankan. Die routine maak je dan 2
> keer in 2 verschillende talen en voila, je hebt een leuk
> onderhoudsprobleempje.
Nico, je ziet het wel weer erg 'ruim', maar ditmaal ook gelijk te somber, in.
Zoals ik al liet doorschemeren heb ik in een andere NG al in een simpel
voorbeeld laten zien hoe je efficient zowel client- als server side met totalen
en subtotalen & enige controle op - de hier van toepassing zijnde - ingevoerde
gegevens werken kunt. Daarbij hoef je voorlopig echt niet iets dubbel te gaan
doen.
WD