[PHP] form

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jurryt
  • Registratie: Augustus 2006
  • Laatst online: 03-08 17:30
Hey,

Misschien voor sommigen onder jullie een ontzettend easy vraagje, voor mij ontzettend lastig...
Ik ben bezig met een "bestel" formuliertje. Mensen kunnen enkele opties selecteren, op berekenen klikken en dan komen er de prijs, afmetingen en extra opties te staan.

http://www.jurgt.nl/harold/eettuintafel.php

Lastig uit te leggen. De prijs klopt nog niet omdat hij values leest. In deze values heb ik de opties gezet. Kan iemand mij helpen zodat dit lijst correct is? Bij voorbaat dank.

Jurryt Visser

<?
if($_POST){
$prijs = 149;
$prijs = $prijs + $_POST['afmetingen'];
$prijs = $prijs + $_POST['extraopties'];
}
if($_POST){
$afmetingen = $_POST['afmetingen'];
}
if($_POST){
$extraopties = $_POST['extraopties'];
}
?>
<br />

<form action="eettuintafel.php" method="post">
<span class="tekstdikzw">Kies het formaat </span><br />
<select name="afmetingen" class="tekstzw" id="afmetingen">
<option value="180x90x76">180x90x76</option>
<option value="200x100x76">200x100x76 +€10</option>
<option value="220x100x76">220x100x76 +€30</option>
</select>
<br />
<span class="tekstdikzw">Extra opties</span> <br />

<select class="tekstzw" name="extraopties" id="extra">
<option value="0">maak uw keuze (+0)</option>
<option value="Whitewas">Whitewas +€50</option>
<option value="Lakken">Lakken +€50</option>
</select>
<br />
<br />

<input class="tekstdikzw" type="submit" value="bereken">
</form>

<span class="tekstdikzw">Prijs: €<? echo $prijs; ?><br />
Afmetingen: <? echo $afmetingen; ?> cm <br />
Extra optie: <? echo $extraopties; ?> </span>

Acties:
  • 0 Henk 'm!

Verwijderd

Je telt bij de prijs de afmetingen op? Wat ben je in hemelsnaam aan het doen...

De option-values moet je numeriek maken.

[ Voor 21% gewijzigd door Verwijderd op 25-06-2008 22:05 ]


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Als je het volgende doet zal je zien dat de prijzen niet worden verstuurd maar dat je probeert om de tekst in value="" probeert op te tellen.
PHP:
1
print_r($_POST);

PHP is nogal vaag daarmee en doet het gewoon maar wat zou jij zeggen als iemd je vraagt om de volgende som op te lossen? 149 + '180x90x76' + 'Whitewas +€50' = ?

De oplossing is om enkel de prijzen van de opties in het value attribuut te zetten en niet de volledige naam.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Jurryt
  • Registratie: Augustus 2006
  • Laatst online: 03-08 17:30
Boland: Ik zei toch, voor mij is het een helskarwei ;-)

Johnny:
Klinkt heel logisch.

Mijn probleem bij dit formulier is wanneer ik de de prijs in value doe, hij deze ook neerzet bij afmetingen en extra opties. Zodra ik de naam erin zet, spreekt voor zich, telt hij inderdaad dat sommetje op.

Ik wil graag dat hij de prijs leest bij prijs, de geselecteerde opties leest bij afmetingen en extra opties.

Bedankt!

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Je kan de tekst tussen de <option> gewoon laten staan, alleen de waarde van de value aanpassen:
HTML:
1
2
3
4
5
<select class="tekstzw" name="extraopties" id="extra">
<option value="0">maak uw keuze (+0)</option>
<option value="50">Whitewas +€50</option>
<option value="50">Lakken +€50</option>
</select>

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Het lijkt me niet slim om prijzen e.d. client-side te 'bepalen'. Zulk soort dingen moet je uit een server-side DB halen.

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Da's juist gaaf Osiris, als ik het veldje afmetingen als waarde -200 geef vanuit m'n webdev toolbar krijg ik 51 euro toe bij een bestelling!

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Oftewel

Je kan de tekst tussen de <option> gewoon laten staan, alleen de waarde van de value aanpassen:
HTML:
1
2
3
4
5
<select class="tekstzw" name="extraopties" id="extra">
<option value="0">maak uw keuze (+0)</option>
<option value="1">Whitewas +€50</option>
<option value="2">Lakken +€50</option>
</select>


Dat krijg je binnen als $_POST['extraopties'] = 0, 1 of 2. Aan de hand van dat nummertje ga je in je PHP script opzoeken welk bedrag daarbij hoort.

[ Voor 50% gewijzigd door een moderator op 26-06-2008 09:11 ]

🌞🍃


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Ik zie overigens alleen maar een dump van een stuk code en vervolgens wat jij wilt dat het doet. Maar geen enkele keer meld je wat je zelf al hebt geprobeerd om tot een oplossing te komen. Iets wat we hier wel graag terug willen zien. Als je in de toekomst nog vragen/problemen hebt wil je dan aub op Programming Beleid en dan met name Programming Beleid - De Quickstart
letten? Die sticky topics staan er niet voor niets ;)

En no offence, maar de vragen die je nu stelt zijn met een HTML tutorial gevolgd door een PHP tutorial eenvoudig op te lossen. Ik krijg het idee dat je de basis van HTML en PHP iet onder de knie hebt en toch al een website met shop e.d. anan het maken bent. Dat lijkt me op het moment eignelijk nog een stapje te ver voor je.

[ Voor 23% gewijzigd door Creepy op 26-06-2008 09:11 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1