Rechnen im Mietformular

silentingo

Grünschnabel
Hi,
ich habe mich seit Tagen durch das INet gewühlt und versucht dort Antworten zu finden.
Nun bin ich bei euch im Forum gelandet und habe auch schon die Suchen-Funktion genutzt.aber ich bin leider nur teilweise findig geworden.
Ich hoffe mir kann jemand helfen.
Ich möchte ein Formular erstellen, das meiner meinung nach komplexe rechenfunktionen benötigt. Damit ihr euch ein Bild von meinem Problem machen könnt, habe ich den gesamten Quelltext als txt-Datei angehangen.
Zum Beispiel soll der Gast nun bei Übernachtungen eine Zahl eingeben die dann mit einer Konstanten multipliziert wird und im Feld Summe1 ausgegeben werden soll.
Oder wenn er Parkplatz wählt soll eine Konstante mit der Anzahl der Übenachtungen multipliziert werden.
Oder wenn er Wäsche wählt mit der Anzahl der der Personen.
Dann soll alles im Summenfeld addiert werden.
Ich will jetzt nicht unbedingt das Ihr meine Arbeit macht, ich will es verstehen.
Ich hoffe mir kann jemand helfen

silentingo
 

Anhänge

Zuletzt bearbeitet:
Woran genau haperts dabei... weisst du nicht, wie man an die Werte in den Formularfeldern kommt, um sie zu addieren, oder befriedigt dich das Ergebnis nicht ?
 
Hi,
das Problem liegt, glaube ich, im HEAD.
Das hinzufügen eines Wertes in ein bestimmtes Feld (Endreinigung) habe ich ja nun geschafft.
Jetzt kommen aber andere Rechenkombinationen dazu.
Zum Beispiel das bei einer Aktivierten Checkbox (Parkplatz) die eingebene Zahl im Feld
"Übernachtungen" mit einem fixen Wert multipliziert und dann im Feld „Summe4“
Ausgegeben wird.
Wenn ich nun versuche im HEAD eine zweite Anweisung einzufügen, geht nix mehr.
Wie kann ich nun mehrere Anweisungen im HEAD kombinieren und einzelne Werte und Felder ansteuern.
In HTML kann man das alles wunderbar verschachteln.
silentingo
 
Hi,
ich will mein Anliegen mal etwas klarer formulieren.
Ich muß mehrere Rechenarten in einem Formular unterbringen.
1.
Eingabefeld1 soll die eingegebene Zahl mit 40 multiplizieren und im Summe1-feld ausgeben.
2.
Checkbox1 soll bei Aktivierung den Wert 40 im Summe2-feld ausgeben.
3.
Checkbox2 soll bei Aktivierung den Wert von 5 mit der gewählten Zahl im Pulldown multiplizieren und im Summe3-feld ausgeben.
4.
checkbox3 soll bei Aktivierung den Wert aus Eingabefeld1 mit 5 multiplizieren und im
Summe4-feld ausgeben.
5.
Berechnen-Button soll Summe1-feld bis Summe4-feld Addieren und im Summenfeld ausgeben.
Ich komme damit nicht klar, im Headbereich verschiedenen Rechenoperationen verschiedene Ausgabefelder zu zuweisen.
Wenn ihr mir nicht Helfen könnt, kann mir dann jemand sagen wo man ein script bestellen kann, gegen ein kleines Endgeld natürlich.
Ich muß die Präsenz fertig bekommen und es hängt nur noch an diesem Formular.
silentingo
 
Im Prinzip ist es recht simpel....
du prüfst die Checkboxes und wenn sie gecheckt sind, rechnest du halt das Gewünschte zusammen und trägst es in die Summenfelder ein. Zum Schluss rechnest du alles zusammen und trägst es bei der Endsumme ein.

Das ganze sähe ca. so aus:
Code:
function Rechnung() 
{ 
    summe = 0;
    frm   = document.forms[0];
    if(intDays = check_date())
        {
            frm.uebernachtungen.value = intDays;
            summe += frm.Summe1.value = intDays * 40;
            summe += frm.Summe2.value = (frm.endreinigung.checked) ? 40                     : 0;
            summe += frm.Summe3.value = (frm.waesche.checked)      ? 5 * frm.Personen.value : 0;
            summe += frm.Summe4.value = (frm.parken.checked)       ? 5 * intDays            : 0;
            frm.Summenfeld.value      = summe;
        }
}

Du wirst merken, dass ich da ein paar Formularfelder anspreche, die es bei dir garnicht gibt(parken, waesche etc. ....das ist bei dir recht unpraktisch, diese Felder alle "Artikel" zu nennen...wolltest du wahrscheinlich ohnehin noch ändern )

Auch die Funktion "checkdate()" gibts bei dir noch nicht... die überprüft An-Abreisedatum auf Richtigkeit und liefert im Erfolgsfall die Anzahl der Übernachtungen.

Ich häng das mal ran, dann kannst du damit rumprobieren;)
 

Anhänge

Hi,
das hat mir sehr viel weiter geholfen. Danke
Jetzt habe ich nur noch das Problem mit den cent.
Ich habe den multiplikator (145) in 145.00 geändert aber in der Ausgabe erscheint
auch wieder eine Zahl ohne ,00.
Nun habe ich folgendes:


function kaufm(x) {
var k = (Math.round(x * 100) / 100).toString();
k += (k.indexOf('.') == -1)? '.00' : '00';
return k.substring(0, k.indexOf('.') + 3);
}

Aber wo genau kommt das rein?
Ich habe diesen Code an verschiedenen Stellen im Head eingefügt, es ist aber nichts passiert.

silentingo
 
das kommt bei jedem einzelnen Wert hin, der ausgegeben werden soll....
Code:
summe += frm.Summe1.value = kaufm(intDays*40);
summe += frm.Summe2.value = kaufm((frm.endreinigung.checked) ? 40                     : 0);
...usw.

dadurch funktioniert das Zusammenrechnen der Summen allerdings nicht mehr korrekt, da diese kaufm-Funktion den typ der Werte in "String" umwandelt, welche somit nicht addiert werden, sondern als Zeichenkette zusammengesetzt.

Browser aus diesem Jahrtausend verstehen die Methode toFixed() ....da bleibt der Typ erhalten.
 
Hallo,
ich habe das Problem nun anders gelöst. Da ich nur volle € erwarte, habe ich die nullen nach dem Komma einfach hinter die Felder geschrieben.
Ich hoffe das ich die ausgegebenen Werte auch noch rechtsbündig bekomme.

Aber ich habe da auch noch ein anderes Problem.
Der E-Mail versand klappt nicht so wie ich es mir dachte.
Zum einen schreckt es den Kunden wohl ab wenn diese ganzen Warnhinweise kommen und zum anderen, sah die Testmail so aus, das die ganzen Daten linksbündig untereinander
standen und immer nur ein Wort pro Zeile. Kann man das Formular auch so senden, das es in der ankommenden E-Mail so aussieht wie bei der eingabe?


Wäre toll wenn ich das auch noch hin bekommen würde.
Hab die relevanten zeilen mal eingefügt und die Datei mal dran gehangen

<form name="Antwort" method="post" action="mailto:angelacampehl@hotmail.com" enctype="text/plain">


<input type="submit" value="Absenden">

Was ist daran falsch?
silentingo
 

Anhänge

Zuletzt bearbeitet:
Man kann es senden, ohne Warnhinweise... mit Hilfe einer serverseitigen Sprache(bspw. PHP).

Damit es genauso aussieht wie im Browser, musst du die Formulareingaben mittels der gewählten Sprache zu einer HTML-Mail verarbeiten... wie das geht, dazu findest du Threads im PHP-Forum.
 

Neue Beiträge

Zurück