• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Preisrechner

Andiii

Neues Mitglied
Hallo Leute,
habe ein kleines Problem, bin leider noch Anfänger im Bereich PHP, habe jetzt eine Script zum Preis berechnen mit Checkbox und Radio Buttons.
Meine Frage kann mir vielleicht vielleicht jemand helfen das Script so umzuschreiben das ich auch Drop Down Felder bzw Textfelder mit mengen angaben einfügen kann?

Ich poste euch einfach mal den Code:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Bestellformular</title>

<script language="JavaScript">
<!--
function aktualisieren() {    
                var gespreis = 0;    
                var wert = 0;    
                for (var i = 1; i <= 8; i++) {        
                          if (document.getElementById(i).checked) {
                              wert = parseFloat(document.getElementById(i).value);            
                              wert = wert*100;            
                              gespreis += parseInt(wert);        
                }    
                            }    
                gespreis = parseFloat(gespreis);    
                gespreis = gespreis/100;    
                document.getElementById('preis').value = gespreis;
}
-->
</script>

HTML:
</head>
<body>
<form>    
<p><input name="dvd1" id="1" type="checkbox" value="29.951E0" onchange="aktualisieren()" /> DVD1 - 29.95</p>    <p>
<input name="dvd2" id="2" type="checkbox" value="21.951E0" onchange="aktualisieren()" /> DVD2 - 21.95</p>    <p>
<input name="dvd3" id="3" type="checkbox" value="9.951E0" onchange="aktualisieren()" /> DVD3 - 9.95</p>    <p>
<input name="dvd4" id="4" type="checkbox" value="12.951E0" onchange="aktualisieren()" /> DVD4 - 12.95</p>    <p>
<input name="dvd5" id="5" type="checkbox" value="79.951E0" onchange="aktualisieren()" /> DVD5 - 79.95</p>    <p>
<input name="dvd6" id="6" type="checkbox" value="29.951E0" onchange="aktualisieren()" /> DVD6 - 29.95</p>    <p>
<input name="dvd7" id="7" type="checkbox" value="49.951E0" onchange="aktualisieren()" /> DVD7 - 49.95</p>    <p>
<input name="dvd8" id="8" type="checkbox" value="29.951E0" onchange="aktualisieren()" /> DVD8 - 29.95</p>    <p>
<input name="gesamtpreis" id="preis" type="text" value="0.00" readonly="readonly" /> &euro;</p></form></body></html>


Danke im Vorraus
 
Werbung:
@mod bitte verschieben -> js

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Bestellformular</title>

<script language="JavaScript">
<!--
function aktualisieren() {    
                var gespreis = 0;    
                var wert = 0;    
                for (var i = 1; i <= 8; i++) {        
                          if (document.getElementById(i).checked) {
                              wert = parseFloat(document.getElementById(i).value);       
anzahl =     document.getElementById("anzahl"+i).value
                              wert = wert*100*anzahl;            
                              gespreis += parseInt(wert);        
                }    
                            }    
                gespreis = parseFloat(gespreis);    
                gespreis = gespreis/100;    
                document.getElementById('preis').value = gespreis;
}
-->
</script>  
HTML-Code:
</head>
<body>
<form>    
<p><input name="dvd1" id="1" type="checkbox" value="29.951E0" onchange="aktualisieren()" /> DVD1 - 29.95
    <SELECT id="anzahl1" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT>
</p> <p>
<input name="dvd2" id="2" type="checkbox" value="21.951E0" onchange="aktualisieren()" /> DVD2 - 21.95
        <SELECT id="anzahl2" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="dvd3" id="3" type="checkbox" value="9.951E0" onchange="aktualisieren()" /> DVD3 - 9.95
        <SELECT id="anzahl3" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="dvd4" id="4" type="checkbox" value="12.951E0" onchange="aktualisieren()" /> DVD4 - 12.95
        <SELECT id="anzahl4" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="dvd5" id="5" type="checkbox" value="79.951E0" onchange="aktualisieren()" /> DVD5 - 79.95
        <SELECT id="anzahl5" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="dvd6" id="6" type="checkbox" value="29.951E0" onchange="aktualisieren()" /> DVD6 - 29.95
        <SELECT id="anzahl6" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="dvd7" id="7" type="checkbox" value="49.951E0" onchange="aktualisieren()" /> DVD7 - 49.95
        <SELECT id="anzahl7" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="dvd8" id="8" type="checkbox" value="29.951E0" onchange="aktualisieren()" /> DVD8 - 29.95
        <SELECT id="anzahl8" onchange="aktualisieren()"><OPTION value="1">1x</OPTION><OPTION value="2">2x</OPTION></SELECT></p> <p>
<input name="gesamtpreis" id="preis" type="text" value="0.00" readonly="readonly" /> &euro;</p></form></body></html>​​​​​​​​​​​​​​​


musst noch bissi nach bessern aber das sollte es bringen!!

MfG Mario
 
Hai,

danke für die schnelle Antwort:

ist sogar fast das was ich wollte. =)

Du hast mir jetzt die Drop Down Felder ans Ende jedes Buttons gesetzt, eigentlich meine ich aber das anstatt eines buttons quasi das drop down feld kommt.

1. Radio 20,00 €
2. Checkbox 30,00 €
3. Drop Down Feld > Artikel1= 10€ > Artikel2= 20€
4. Text Feld > z.B. eingabe 3 (3*1,50€=ergebnis was addiert werden soll)

und dann sollte er die ganzen Preise zusammen rechnen.

ich hoffe ich hab mich jetzt verständlich genug ausgedrückt.

wie gesagt bin leider noch nicht ganz fit in diesem Bereich


Danke dir drotzdem für die schnelle Hilfe
 
Zuletzt bearbeitet:
Werbung:
sorry aber ganz verstehe ich dich noch nicht... könntest du mal das html zusammen schreiben wie das ca aussehen soll?
 
HTML:
</head>
<body>
<form>    

<p><input name="dvd1" id="1" type="radio" value="30,00" onchange="aktualisieren()" /> Test Artikel 1</p>          <!-- kannst du so lassen -->    
<p><input name="dvd2" id="2" type="checkbox" value="21.951E0" onchange="aktualisieren()" /> Test Artikel 2</p>    <!-- kannst du so lassen -->    

<p><input name="dvd3" id="3" type="text" value="10,00" onchange="aktualisieren()" /> Test Artikel 3</p>     <!-- bei Eingabe von der Zahl 3 in das Textfeld soll diese Zahl mit dem wert von 1,50 € Multipliziert werden. -->    

<select>    
<option>1 Artikel</option>                   <!-- soll kosten 30 € -->    
<option>2 Artikel</option>                   <!-- soll kosten 60 € -->    
<option>3 Artikel</option>                   <!-- soll kosten 90 € -->    
</select>    
<p><input name="gesamtpreis" id="preis" type="text" value="0.00" readonly="readonly" /> &euro;</p>    <!-- Am Ende soll dann alles bei dem Gesamtpreis zummengerechnet werden -->              

</form>

</body>
</html>
 
Werbung:
sorry dauerte länger...
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Bestellformular</title>

<script language="JavaScript">
<!--
function aktualisieren() {    
                var gespreis = 0;    
                for (var i = 1; i <= 6; i++) {

var obj = document.getElementById(i);
if(obj.type == "radio" || obj.type == "checkbox"){
if(obj.checked){
    gespreis += parseFloat(obj.value);
}    
}  
if(obj.type == "text"){

    gespreis += parseFloat(obj.value);
}    

    if(obj.tagName.toLowerCase() == "select"){
    gespreis += parseFloat(obj.options[obj.selectedIndex].value);
}   
}
                document.getElementById('preis').value = gespreis;
}
-->
</script>  
</head>
<body><form>    

<p>
    <input name="dvd1" id="1" type="radio" value="30,00" onchange="aktualisieren()" /> Test Artikel 1</p> <!-- kannst du so lassen --> 
   <input name="dvd1" id="2" type="radio" value="40,00" onchange="aktualisieren()" /> Test Artikel 2</p> <!-- kannst du so lassen --> 
<input name="dvd1" id="3" type="radio" value="50,00" onchange="aktualisieren()"/> Test Artikel 3</p> <!-- kannst du so lassen --> 
    
<p><input name="dvd2" id="4" type="checkbox" value="21.951E0" onchange="aktualisieren()" /> Test Artikel 2</p> <!-- kannst du so lassen -->    

<p><input name="dvd3" id="5" type="text" value="10,00" onchange="aktualisieren()" /> Test Artikel 3</p> <!-- bei Eingabe von der Zahl 3 in das Textfeld soll diese Zahl mit dem wert von 1,50 € Multipliziert werden. -->    

<select id="6" onchange="aktualisieren()">    
<option value="1">1 Artikel</option> <!-- soll kosten 30 € -->    
<option value="6">2 Artikel</option> <!-- soll kosten 60 € -->    
<option value="67">3 Artikel</option> <!-- soll kosten 90 € -->    
</select>    
<p><input name="gesamtpreis" id="preis" type="text" value="0.00" readonly="readonly" /> &euro;</p> <!-- Am Ende soll dann alles bei dem Gesamtpreis zummengerechnet werden -->              

</form>

</body>
</html>​​

is das was du brauchst?
 
Zuletzt bearbeitet:
Werbung:
Werbung:
Ich bin leider Grade nicht Zuhause,sobald ich da bin versuche ich es noch mal! Meld mich gegen 19 Uhr noch mal
 
bitte so nicht produktiv verwenden.

ID-Werte sollten mit einem buchstaben beginnen.
eine id vergabe ist in dem fall nicht notwendig und wär ggf doppelt. so finde ich es passender:
Code:
<form id="produkte">
<input name="produkt[0]><input name="produkt[1]><input name="produkt[2]><input name="produkt[3]>
</form>

je nachdem was es werden soll sind bestimmte rechtliche richtlinien einzuhalten.
falls es ein kaufsystem werden soll sind die werte in jedem fall serverseitig zu überprüfen.
ergebnisse mit 3 nachkommastellen sind so vorteilhaft wie ein parse float auf einen wert wie "30,00". hier müsste eine formatumrechnung her, die eingaben wie 30,101 in 30.10 umrechnet.

falls du vor hast ein solches script produktiv einzusetzen, versuche dich erstml an einem einfacheren beispiel.
 
Werbung:
Nein, es soll kein Kaufsystem werden nur eine PreisInformation! Ohne bestellfunktion bzw Kaufoption
 
Also den Fehler habe ich jetzt gefunden wieso der Rechner nicht funktioniert hat.

Funktioniert eigentlich Super bis auf das Textfeld.

Hoffe Ihr könnt mir dabei auch noch helfen.


LG Andiii

Dankeeee =)
 
Zuletzt bearbeitet:
HeY Leute nach langen basteln und grübeln funktioniert das Formular fast wie es soll.

Textfeldfunktion funktioniert immer noch nicht so wie sie funktionieren soll.

Kann jemand in den Preisrechner eine Druckfunktion einfügen, wo alle ausgewählten felder druckt?


Danke im Vorraus
 
Werbung:
Vielleicht ist die Frage auch unglücklich gestellt. Sie klingt so als würdest du jemanden für dich etwas programmieren lassen wollen. Und ich verstehe sie zudem nicht ganz.
 
Zurück
Oben