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

Formular - 2 Functionen addieren

WaTer

Neues Mitglied
Hallo,

ich wollte ein Formular erstellen in dem 2 Variablen am ende addiert werden. Nur bekomme ich das einfach nicht hin, vielleicht kann ja mal jemand drüber fliegen und sieht sofort die Lösung! Danke im vorraus (achja und beim formular senden button passiert auch nichts :/)


<html>
<head>
<title>aaaa</title>
<script type = "text/javascript">
<!--
function preis()
{
var i;
var preis = new Array(3);
preis[0] = "30,00 €";
preis[1] = "50,00 €";
preis[2] = "5,50 €";
if (document.Formular1.Auswahl1[0].checked)
document.Formular1.Preise.value = preis[0];
if (document.Formular1.Auswahl1[1].checked)
document.Formular1.Preise.value = preis[1];
if (document.Formular1.Auswahl1[2].checked)
document.Formular1.Preise.value = preis[2];
for (i = 0; i < document.Formular1.Auswahl1.length; i ++)
if (document.Formular1.Auswahl1.checked)
document.Formular1.Preise.value = preis;

}


function preis2()
{
var i;
var preis2 = new Array(3);
preis2[0] = "30,00 €";
preis2[1] = "50,00 €";
preis2[2] = "5,50 €";
if (document.Formular1.Auswahlflash[0].checked)
document.Formular1.Preise2.value = preis2[0];
if (document.Formular1.Auswahlflash[1].checked)
document.Formular1.Preise2.value = preis2[1];
if (document.Formular1.Auswahlflash[2].checked)
document.Formular1.Preise2.value = preis2[2];
for (i = 0; i < document.Formular1.Auswahlflash.length; i ++)
if (document.Formular1.Auswahlflash.checked)
document.Formular1.Preise2.value = preis2;



}




//-->
</script>
</head>
<body >
<h3>&nbsp;</h3>
<form name = Formular1>
<p>Name
<input type="text" name="name" id="name">
</p>
<p>NachName
<input type="text" name="name2" id="name2">
</p>

<table width="167%" cols = "4" style = "margin-left : 3%; margin-right : 5%">
<tr>
<td width = "11%">
r:
</td>
<td width = "23%">
<input type = "radio" name = "Auswahl1" value = "1"
onClick = "preis()">
1<br>
<input type = "radio" name = "Auswahl1" value = "2"
onClick = "preis()">
2<br>
<input type = "radio" name = "Auswahl1" value = "3"
checked onClick = "preis()">
3 <br>
</td>
<td width = "37%"><input type = "radio" name = "Auswahlflash" value = "4"
onClick = "preis2()">
4
<br>
<input type = "radio" name = "Auswahlflash" value = "5"
onClick = "preis2()">
5<br>
<input type = "radio" name = "Auswahlflash" value = "6"
checked onClick = "preis2()">
6
</td>
<td width = "29%">
<input type = "checkbox" name = "Platzwahl" value = "vorne">
vorne
<br>
<input type = "checkbox" name = "Platzwahl" value = "mitte"> mitte <br>
<input type = "checkbox" name = "Platzwahl" value = "hinten"> hinten<br>
<input type = "checkbox" name = "Platzwahl" value = "Rang"> Rang
</td>
</tr>
<tr>
<td>
<!--leer-->
</td>
<td>
kosten1:
<input type = "text" name = "Preise" size = "10" value = "0,00 €" >
</td>
<td style = "text-align : center">kosten2:
<input type = "text" name = "Preise2" size = "10" value = "0,00 €" >
:
</td>
<td>&nbsp;</td>
</tr>
<td>
<!--leer-->
</td>
<td>
<!--leer-->
Total:
<input type = "text" name = "Preise3" size = "30" value = "0,00 €" id="Preise3" ></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<!--leer-->
</td>
<td>
<input type = "submit" value = "Formular absenden" action="mailto:[email protected]">
</td>
<td>
<input type = "reset" value = "Formular löschen">
</td>
<td>
<!--leer-->
</td>
</tr>
</table>
</form>

<p>&nbsp;</p>
<form>
<input type = "button" value = "Schließen"
onClick = "window.close()">
</form>
</p>


</body>
</html>
 
Deine JavaScript-Konsole sollte einen Fehler melden. Denn da fehlt mindestens ein } allein schon in der ersten Funktion die nicht mal sauber beendet ist. Und wo willst Du da etwas und wenn ja was addieren?
 
abend,

also ich mach das im Dreamweaver - da zeigt er mir irgendwie keinen fehler an das die function nicht beendet wurde, ich seh da auch nicht den fehler ehrlich gesagt :| function { und wird am ende wieder beendet } (bin eher neuling darin). ich will das die function preis und preis2 am ende im Total(Preis3) Fenster addiert angezeigt werden.

Habe mal das in die 2 Function rein
document.Formular1.Preise3.value = document.Formular1.Preise.value + document.Formular1.Preise2.value;

dann zeigt er mir den Preis des ersten und den Preis des 2ten zwar im (total)Preis3 kasten an, aber halt nich addiert(so wirds zum bsp dann angezeigt 30€ + 50€ - ich will aber das es dann direkt 80€ anzeigt).

Bzw mein 2tes problem ist das wenn man auf den absenden button schickt - nichts gemailt wird
<input type = "submit" value = "Formular absenden" action="mailto:[email protected]">

Vielen Dank schonmal für deine Hilfe
 
Sauber eingerückt sieht man den Fehler besser, ich hab es mal markiert was fehlt.

Code:
function preis()
{
  var i;
  var preis = new Array(3);
  preis[0] = "30,00 €";
  preis[1] = "50,00 €";
  preis[2] = "5,50 €";
  if (document.Formular1.Auswahl1[0].checked)
    document.Formular1.Preise.value = preis[0];
  if (document.Formular1.Auswahl1[1].checked)
    document.Formular1.Preise.value = preis[1];
  if (document.Formular1.Auswahl1[2].checked)
    document.Formular1.Preise.value = preis[2];
  for (i = 0; i < document.Formular1.Auswahl1.length; i ++) [COLOR="red"]{[/COLOR]
    if (document.Formular1.Auswahl1[i].checked)
      document.Formular1.Preise.value = preis[i];
  [COLOR="red"]}[/COLOR]
}

Was heißt "am Ende"? Ab welchem Moment soll der Gesamtpreis addiert werden?

Du kannst keine String addieren, denn das sind Zahlen die ein Euro-Zeichen enthalten. Du müsstest diese Strings in reine Zahlen umwandeln, am Besten Integer-Werte. Also z.B. mittels

Code:
document.Formular1.Preise3.value = parseInt(document.Formular1.Preise.value) + parseInt(document.Formular1.Preise2.value);

Dadurch würde bei der Addition von

Code:
2,34 € + 5,67 €

als Summe

Code:
801

in dem Eingabefeld stehen. Diese Zahl müsstest Du wiederum mittels JavaScript so formatieren, dass wieder ein Preis raus kommst. Dafür gibt es einige Vorlagen, z.B. diese hier: Q6 How do you display the .00, or in the case of 50 cents display .50 instead of .5?

Dein zweites Problem liegt daran, dass das so nicht funktioniert. Du hast mit purem HTML zwar die Möglichkeit in einem Formular eine E-Mail-Adresse anzugeben

Code:
<form action="mailto:[email protected]">

das ist jedoch eine unsaubere und unschöne Methode da dem Nutzer dann beim Abschicken des Formulars ein Fenster seines E-Mail-Programms geöffnet wird (wenn er denn überhaupt eines hat!) und die eingegebenen Daten im schlimmsten Fall nochmal eingeben muss.
Die saubere Variante ein Formular abzuschicken wäre ein Formmailer der z.B. auf php-Basis funktioniert. Auch hierfür gibt es zahlreiche Vorlagen im Web, z.B. hier:
WebDesign - Tips und Tricks: universeller Formmailer
 
Ich wollte halt ledeglich ein Formular erstellen, indem die Leute zwischen 2 verschiedenen sachen wählen können.
also z.b:
im ersten Menü haben sie 3 Sachen wovon sie etwas auswählen können:
Tasse
Teller
Gabel
davon wird dann in einem Fenster darunter der Preis angezeigt...
dann im 2ten Menü:
Messer
Löffel
Brett
und davon wird dann auch der Preis in einem 2ten Fenster darunter angezeigt...
dann gibt es noch ein drittes Fenster indem der Preis aus dem 1ten und den 2ten Fenster addiert angezeigt wird(Totale Summe).
Dann sollen sie noch ihren Namen und Nachnamen etc angeben und das dann am absenden können und ich erhalte dies auf meiner Email adresse. Nun meine Frage - ist das script von mir da oben dafür dann überhaupt zu gebrauchen oder sollte ich mir einfach ein "vorgefertigtes" irgendwo herunterladen?
 
habe jetzt mal ihre codes mit eingebaut und es funktioniert auch - bis auf das Mailen (aber die addition funktioniert - ich muss mal schauen - wenn ich nur runde beträge habe sollte das ja eignetlich als Lösung reichen, wenn das mailen noch funktioniert) - danke :)

<html>
<head>
<title>aaaa</title>
<script type = "text/javascript">
<!--
function preis()
{
var i;
var preis = new Array(3);
preis[0] = "30,00 €";
preis[1] = "50,00 €";
preis[2] = "5,50 €";
if (document.Formular1.Auswahl1[0].checked)
document.Formular1.Preise.value = preis[0];
if (document.Formular1.Auswahl1[1].checked)
document.Formular1.Preise.value = preis[1];
if (document.Formular1.Auswahl1[2].checked)
document.Formular1.Preise.value = preis[2];
for (i = 0; i < document.Formular1.Auswahl1.length; i ++){
if (document.Formular1.Auswahl1.checked)
document.Formular1.Preise.value = preis;

}
document.Formular1.Preise3.value = parseInt(document.Formular1.Preise.value) + parseInt(document.Formular1.Preise2.value) + ",00 €";
}

function preis2()
{
var i;
var preis2 = new Array(3);
preis2[0] = "30,00 €";
preis2[1] = "50,00 €";
preis2[2] = "5,50 €";
if (document.Formular1.Auswahlflash[0].checked)
document.Formular1.Preise2.value = preis2[0];
if (document.Formular1.Auswahlflash[1].checked)
document.Formular1.Preise2.value = preis2[1];
if (document.Formular1.Auswahlflash[2].checked)
document.Formular1.Preise2.value = preis2[2];
for (i = 0; i < document.Formular1.Auswahlflash.length; i ++){
if (document.Formular1.Auswahlflash.checked)
document.Formular1.Preise2.value = preis2;
}
document.Formular1.Preise3.value = parseInt(document.Formular1.Preise.value) + parseInt(document.Formular1.Preise2.value) + ",00 €";

}

//-->
</script>
</head>
<body >
<h3>&nbsp;</h3>
<form name = Formular1 action="mailto:[email protected]">

<p>Name
<input type="text" name="name" id="name">
</p>
<p>NachName
<input type="text" name="name2" id="name2">
</p>

<table width="167%" cols = "4" style = "margin-left : 3%; margin-right : 5%">
<tr>
<td width = "11%">
r:
</td>
<td width = "23%">
<input type = "radio" name = "Auswahl1" value = "Auswahl1"
onClick = "preis()">
1<br>
<input type = "radio" name = "Auswahl1" value = "Auswahl2"
onClick = "preis()">
2<br>
<input type = "radio" name = "Auswahl1" value = "Auswahl3"
checked onClick = "preis()">
3 <br>
</td>
<td width = "37%"><input type = "radio" name = "Auswahlflash" value = "Auswahl4"
onClick = "preis2()">
4
<br>
<input type = "radio" name = "Auswahlflash" value = "Auswahl5"
onClick = "preis2()">
5<br>
<input type = "radio" name = "Auswahlflash" value = "Auswahl6"
checked onClick = "preis2()">
6
</td>
<td width = "29%">
<input type = "checkbox" name = "Platzwahl" value = "vorne">
vorne
<br>
<input type = "checkbox" name = "Platzwahl" value = "mitte"> mitte <br>
<input type = "checkbox" name = "Platzwahl" value = "hinten"> hinten<br>
<input type = "checkbox" name = "Platzwahl" value = "Rang"> Rang
</td>
</tr>
<tr>
<td>
<!--leer-->
</td>
<td>
kosten1:
<input type = "text" name = "Preise" size = "10" value = "0,00 €" >
</td>
<td style = "text-align : center">kosten2:
<input type = "text" name = "Preise2" size = "10" value = "0,00 €" >
:
</td>
<td>&nbsp;</td>
</tr>
<td>
<!--leer-->
</td>
<td>
<!--leer-->
Total:
<input type = "text" name = "Preise3" size = "30" value = "0,00 €" id="Preise3" ></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<!--leer-->
</td>
<td>
<input type = "submit" value = "Formular absenden">
</td>
<td>
<input type = "reset" value = "Formular löschen">
</td>
<td>
<!--leer-->
</td>
</tr>
</table>
</form>

<p>&nbsp;</p>
<form>
<input type = "button" value = "Schließen"
onClick = "window.close()">
</form>
</p>


</body>
</html>
 
Das Mailen funktioniert nur, wennn du bei dir lokal ein Mailprogramm installiert und eingerichtet hast.
 
hm - naja das ist nicht gut - habe es gerade mal getestet - wenn sich immer erst das mail programm öffnet...

kann man das nicht irgendwie anders lösen z.b:

<form action="mail.php" method="post" enctype="text/plain">

und dann in einer mail.php
<?php
$empftext = ' '.$_POST["name"].' '; //etc, die ganzen variablen hier rein... das ist dein mailtext hier!
$email = '[email protected]';
$headers = "MIME-Version: 1.0\r\n";
//$headers .= "Content-type: text/richtext; charset=iso-8859-1\r\n";
$headers .= "From: [email protected]\r\n";
$headers .= "Bcc: [email protected]\r\n";
$subject = "Mein Betreff";
mail($email, $subject, $empftext, $headers);
echo 'die mail wurde verschickt!<br><br>';
?>
 
hm - gibt es vielleicht irgendwelche vorlagen? Ich bräuchte eine art Kontaktformular in dem 2 - 3 verschieden artikel(wie eine art shop) ausgewählt werden können und diese am ende als Summe addiert in einem TOTAL fenster da stehen.

mfg
 
hi,

eine frage hab ich noch:
wie übergebe ich der mail.php meine input felder aus der kontakt.html?
$empftext = ' '.$_POST["name"].' '; //etc, die ganzen variablen hier rein... das ist dein mailtext hier!

wie adde ich .$_POST["name"]. <-- da dann noch das email feld - den nachnamen usw - im moment schickt es mir nur den namen

mfg :)
 
Zurück
Oben