[GastForen Programmierung/Entwicklung JavaScript automatische Berechnung

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

automatische Berechnung

Mannix-KR
Beiträge gesamt:

21. Mai 2006, 13:04
Beitrag # 1 von 14
Bewertung:
(5188 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Ich habe ein Problem:
Ich habe verschiedene Eingabefelder (im Code mal 4 von später mal mehr als 150), und rechts neben 4 Eingabefeldern jeweils zwei Ausgabefelder.
Ich möchte, wenn ich in eines der Eingabefelder einen Wert eingebe, daß dieser mit einem festen Wert (z.B. $f_305_305_08_p[$z]) multipliziert wird, und das Ergebnis in einem Ausgabefeld (Summe_2), und die Summe der 4 Eingabefelder in Summe_1 angezeigt wird, ohne daß ich dazu einen Button betätigen muß.
Ist das möglich?
Die Seite ist in PHP und HTML geschrieben:
Code
if($poliert_08 > 0) 
{
echo "<form action=\"warenkorb.php\" method=\"post\">";
echo "\n<tr align=\"center\" valign=\"top\">";
echo "\n<td align=\"right\">8 mm&nbsp;&nbsp;<br>Bestellmenge (m<sup>2</sup>):&nbsp;&nbsp;</td>";
echo "\n<td>\n";
if ($f_305_305_08_p[$z] > 10) echo number_format($f_305_305_08_p[$z] , 2, ',', '.')."&nbsp; &euro;"; else echo "a. A." ;
?> <br><input name="f_305_305_08_p" value="1" type="text" size="5"> <?
echo "</td>";
echo "\n<td>\n";
if ($f_305_610_08_p[$z] > 10) echo number_format($f_305_610_08_p[$z] , 2, ',', '.')."&nbsp; &euro;"; else echo "a. A." ;
?> <br><input name="f_305_610_08_p" value="2" type="text" size="5"> <?
echo "</td>";
echo "\n<td>\n";
if ($f_400_400_08_p[$z] > 10) echo number_format($f_400_400_08_p[$z] , 2, ',', '.')."&nbsp; &euro;"; else echo "a. A." ;
?> <br><input name="f_400_400_08_p" value="3" type="text" size="5"> <?
echo "</td>";
echo "\n<td>\n";
if ($f_600_600_08_p[$z] > 10) echo number_format($f_600_600_08_p[$z] , 2, ',', '.')."&nbsp; &euro;"; else echo "a. A." ;
?> <br><input name="f_600_600_08_p" value="4" type="text" size="5"> <?
echo "</td>";
echo "\n<td align=\"left\">\n";
?>
&nbsp;<input name="summe_1" value="0" type="text" size="5"> &euro;
&nbsp;<input name="summe_1" value="0" type="text" size="5"> m<sup>2</sup><br>
<?
echo "</td>";
echo "\n</tr>";
echo "</form>";
}

Zum Abschluß kommt natürlich, wenn es funktioniert, noch ein submit-button, um die gesammelten Daten über Warenkorb.php in eine Datenbank zu schreiben, aber so weit bin ich noch nicht.
X

automatische Berechnung

SabineP
Beiträge gesamt: 7586

21. Mai 2006, 13:45
Beitrag # 2 von 14
Beitrag ID: #230394
Bewertung:
(5177 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mannix,

die Vergleichsoperatoren für Javascript findest Du hier:

http://de.selfhtml.org/...toren.htm#berechnung

Wenn Javascript im Browser deaktiviert ist, kann nichts berechnet werden.
Also wäre es doch besser, wenn Du die Produkte und Summen mit PHP ermittelst anstatt mit Javascript.

Gruß Sabine


als Antwort auf: [#230390]

automatische Berechnung

Mannix-KR
Beiträge gesamt:

21. Mai 2006, 19:34
Beitrag # 3 von 14
Beitrag ID: #230443
Bewertung:
(5167 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, Sabine.
Aber mit PHP ist das doch noch schwieriger, oder??


als Antwort auf: [#230394]

automatische Berechnung

SabineP
Beiträge gesamt: 7586

21. Mai 2006, 20:00
Beitrag # 4 von 14
Beitrag ID: #230447
Bewertung:
(5162 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nö, warum sollte das schwieriger sein?

Arithmetische Operatoren
http://www.php.net/...ators.arithmetic.php


als Antwort auf: [#230443]

automatische Berechnung

Mannix-KR
Beiträge gesamt:

21. Mai 2006, 20:17
Beitrag # 5 von 14
Beitrag ID: #230449
Bewertung:
(5158 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das wichtigste zuertst: My english is very bad!
Dann kommt noch dazu, daß mit JS irgendwie eine onchange-Function existiert, wovon ih bei PHP noch nie gehört habe.


als Antwort auf: [#230447]

automatische Berechnung

SabineP
Beiträge gesamt: 7586

21. Mai 2006, 20:56
Beitrag # 6 von 14
Beitrag ID: #230457
Bewertung:
(5156 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Javascript-Ereignis onchange wird zum Berechnen ja auch nicht benötigt.

Die Formulardaten sendest Du per Formular und submit-Button an das PHP-Script,
PHP kann anschließend die Berechnungen durchführen und das Ergebnis speichern.

Gruß Sabine


als Antwort auf: [#230449]

automatische Berechnung

Mannix-KR
Beiträge gesamt:

21. Mai 2006, 21:10
Beitrag # 7 von 14
Beitrag ID: #230460
Bewertung:
(5154 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das wäre ja kein Problem.
Aber ich möchte, daß sich der Wert in den beiden Ausgabefeldern in dem Moment ändert, wenn der Inhalt eines der Eingabefelder geändert wird: Also ohne submit.
Und dazu brauche ich wohl onchange, aber ich weiß nicht wie!?


als Antwort auf: [#230457]

automatische Berechnung

Mannix-KR
Beiträge gesamt:

22. Mai 2006, 21:07
Beitrag # 8 von 14
Beitrag ID: #230650
Bewertung:
(5109 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
was auch gehen könnte, ist onkeyup, aber auch hier: Wie sieht die function aus??
Kann mir wirklich keiner helfen??


als Antwort auf: [#230457]
(Dieser Beitrag wurde von Mannix-KR am 22. Mai 2006, 21:08 geändert)

automatische Berechnung

Mannix-KR
Beiträge gesamt:

22. Mai 2006, 22:02
Beitrag # 9 von 14
Beitrag ID: #230662
Bewertung:
(5104 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe mal eine Test-Datei angelegt, um mein Problem zu verdeutlichen:
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
function berech(ein_1,ein_2,ein_3,ein_4,aus_1,aus_2)
{
aus_1 = ein_1+ein_2+ein_3+ein_4;
aus_2 = ein_1*wert_1+ein_2*wert_2+ein_3*wert_3+ein_4*wert_4;
alert(aus_1);
alert(aus_2);
}
//-->
</script>
</head>

<body background="grafik/hg-blau.jpg" text="white" link="white" vlink="white" alink="white">
<form name="form1" action="#">
<input name="test_1" onkeyup="berech(this.value,text_2,text_3,text_4,wert_1,wert_2,ausgabe_1,ausgabe_2)" value="5" type="text" size="5">Test-1<br>
<input name="test_2" onkeyup="berech(this.value,text_1,text_3,text_4,wert_1,wert_2,ausgabe_1,ausgabe_2)" value="6" type="text" size="5">Test-2<br>
<input name="test_3" onkeyup="berech(this.value,text_1,text_2,text_4,wert_1,wert_2,ausgabe_1,ausgabe_2)" value="7" type="text" size="5">Test-3<br>
<input name="test_4" onkeyup="berech(this.value,text_1,text_2,text_3,wert_1,wert_2,ausgabe_1,ausgabe_2)" value="8" type="text" size="5">Test-4<br><br>
<input name="wert_1" value="3" type="hidden" size="5">
<input name="wert_2" value="4" type="hidden" size="5">
<input name="ausgabe_1" value="10" type="text" size="5">Ausgabe<br>
<input name="ausgabe_2" value="20" type="text" size="5">Ausgabe<br><br>
</form>
</body>
</html>


als Antwort auf: [#230650]

automatische Berechnung

oesi50
  
Beiträge gesamt: 2315

22. Mai 2006, 22:24
Beitrag # 10 von 14
Beitrag ID: #230664
Bewertung:
(5100 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
versuchs mal so:
Code
<BODY> 

<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
function rechne(o){
var tmp = parseFloat(o.form.f1.value) + parseFloat(o.form.f2.value);
o.form.p1.value = tmp ? tmp : '';
}
//-->
</SCRIPT>


<FORM METHOD= ACTION="#">

<INPUT TYPE="text" NAME="f1" onkeyup="rechne(this);">
<INPUT TYPE="text" NAME="f2" onkeyup="rechne(this);">
<INPUT TYPE="text" NAME="p1">

</FORM>
</BODY>



als Antwort auf: [#230662]

automatische Berechnung

Mannix-KR
Beiträge gesamt:

22. Mai 2006, 23:10
Beitrag # 11 von 14
Beitrag ID: #230670
Bewertung:
(5098 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dankeschön, so gehts (zumindest in der Test-Datei).
Aber damit ich auch verstehe, was ich da so abschreibe: Was bedeutet
==> = tmp ? tmp : '' <==
Um beide benötigten Berechnungen zu bekommen, habe ich die Testdatei so geändert:
Code
<html> 
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<BODY>

<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
function rechne(o){
var tmp = parseFloat(o.form.f1.value) + parseFloat(o.form.f2.value) + parseFloat(o.form.f3.value) + parseFloat(o.form.f4.value);
var tmp2 = parseFloat(o.form.f1.value) * parseFloat(o.form.w1.value) + parseFloat(o.form.f2.value) * parseFloat(o.form.w2.value) +
parseFloat(o.form.f3.value) * parseFloat(o.form.w3.value) + parseFloat(o.form.f4.value) * parseFloat(o.form.w4.value) ;
o.form.p1.value = tmp ? tmp : '';
o.form.p2.value = tmp2 ? tmp2 : '';
}
//-->
</SCRIPT>

<FORM METHOD= ACTION="#">
<INPUT TYPE="text" NAME="f1" onkeyup="rechne(this);"> Test-1<br>
<INPUT TYPE="text" NAME="f2" onkeyup="rechne(this);"> Test-2<br>
<INPUT TYPE="text" NAME="f3" onkeyup="rechne(this);"> Test-3<br>
<INPUT TYPE="text" NAME="f4" onkeyup="rechne(this);"> Test-4<br>
<INPUT TYPE="text" NAME="p1">
<INPUT TYPE="text" NAME="p2">
<INPUT TYPE="hidden" NAME="w1" value="10">
<INPUT TYPE="hidden" NAME="w2" value="20">
<INPUT TYPE="hidden" NAME="w3" value="30">
<INPUT TYPE="hidden" NAME="w4" value="40">
</FORM>
</BODY>
</html>

Der nächste Schritt ist jetzt für mich, daß ich der funktion noch den Namen der Form mitgebe, weil auf der Seite mehr als 20 Forms geben wird, und ich nicht für jede eine eigene Funktion anlegen möchte.
Geht das auch?


als Antwort auf: [#230664]

automatische Berechnung

oesi50
  
Beiträge gesamt: 2315

23. Mai 2006, 00:13
Beitrag # 12 von 14
Beitrag ID: #230677
Bewertung:
(5094 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Der nächste Schritt ist jetzt für mich, daß ich der funktion noch den Namen der Form mitgebe, weil auf der Seite mehr als 20 Forms geben wird, und ich nicht für jede eine eigene Funktion anlegen möchte.
Geht das auch?


deshalb verwendet man ja 'this'.

Code
o.form.p1.value = tmp ? tmp : ''; 


ist das gleiche wie

Code
if(tmp){ 
o.form.p1.value = tmp;
}
else{
o.form.p1.value = '';
}



als Antwort auf: [#230670]

automatische Berechnung

Mannix-KR
Beiträge gesamt:

23. Mai 2006, 01:06
Beitrag # 13 von 14
Beitrag ID: #230684
Bewertung:
(5089 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, das war mir (wie so vieles) neu.
Die Sache klappt einwandfrei: In meiner Testdatei.
Aber wenn ich die function und die Aufrufe ins Originalfile einsetze, tut sich garnichts.
Hast Du eine Idee?
http://muster.natursteine-carpediem.de/...-cristallo/index.php ist die Originaldatei,
und unter http://muster.natursteine-carpediem.de/test2.php ist die Testdatei....


als Antwort auf: [#230677]
(Dieser Beitrag wurde von Mannix-KR am 23. Mai 2006, 01:14 geändert)

automatische Berechnung

Mannix-KR
Beiträge gesamt:

23. Mai 2006, 12:15
Beitrag # 14 von 14
Beitrag ID: #230753
Bewertung:
(5047 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich bin der Sache schon ein Stück näher gekommen.
Aber wie bekomme ich den Wert einer PHP-Variable als Value-Wertvorlage in eine Form?
Code
<? if ($f_305_610_08_p > 10) echo number_format($f_305_610_08_p , 2, ',', '.')." &euro;"; else echo " " ;?>  
<INPUT TYPE="text" NAME="f2" onkeyup="rechne(this);" value="0" size="5">
<INPUT TYPE="hidden" NAME="w2" value=([b]hier soll der Inhalt der PHP-Variablen $f_305_610_08_p hin)>
<input type="hidden" name="e2">

Die function sieht so aus:
Code
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">  
<!-- function rechne(o){
var tmp1 = parseFloat(o.form.f1.value) + parseFloat(o.form.f2.value) + parseFloat(o.form.f3.value) + parseFloat(o.form.f4.value);
var erg1 = parseFloat(o.form.f1.value) * parseFloat(o.form.w1.value) ;
var erg2 = parseFloat(o.form.f2.value) * parseFloat(o.form.w2.value) ;
var erg3 = parseFloat(o.form.f3.value) * parseFloat(o.form.w3.value) ;
var erg4 = parseFloat(o.form.f4.value) * parseFloat(o.form.w4.value) ;
var tmp2 = erg1 + erg2 + erg3 + erg4 ;
o.form.e1.value = erg1;
o.form.e2.value = erg2;
o.form.e3.value = erg3;
o.form.e4.value = erg4;
o.form.p1.value = tmp1 ? tmp1 : '';
o.form.p2.value = tmp2 ? tmp2 : '';
}
//-->
</SCRIPT>


Die Seite ist als Test unter http://muster.natursteine-carpediem.de/test2.php abgelegt


als Antwort auf: [#230684]
(Dieser Beitrag wurde von Mannix-KR am 23. Mai 2006, 12:17 geändert)
X

Aktuell

InDesign / Illustrator
MTT_300x300_11_2022

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
18.06.2024

Online
Dienstag, 18. Juni 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow