PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brutto-Netto Gehaltsberechnung in PHP - Realisierung?


Parasite Eve
30.11.2005, 14:06:54
Hallo zusammen,

ich bin Auszubildende zur Fachinformatikerin/Anwendungsentwicklung und habe folgendes Problem:

Ich soll ein Gehaltsberechnungs-Programm schreiben, das den Netto-Auszahlungsbetrag (unter Berücksichtigung der Steuerklasse u. der Kinderfreibeträge und Abzug aller Steuern u. Sozialversicherungsbeiträge) ermittelt. Da ich aber leider nur noch 2 Tage habe, um dieses Programm fertigzustellen, wäre es gut, wenn ich es nicht objektorientiert mit Datenbank realisieren müsste (mein ursprüngl. Gedanke). Habe bis jetzt 2 HTML Masken fertig. Formular mit Eingabe der notwendigen Berechnungsdaten, Formular für Ausgabe des Ergebnisses. Die Berechnung wollte ich in einer separaten, für den Benutzer nicht sichtbaren PHP Seite realisieren. Hartcodiert habe ich es auch schon hinbekommen. Wie kriege ich Dynamik rein, d.h. dass ich Mal 2000 Euro Brutto, mal 1500 Euro Brutto usw. eingeben kann und alle Abzüge individuell berücksichtigt werden? Bin noch PHP und Programmier-Anfängerin, bitte schreibt Eure Vorschläge verständlich für mich.

Vielen Dank schonmal für Eure Hilfe!

Opendix
30.11.2005, 14:14:46
na dann zeig doch mal was du da hardcodiert gemacht hast ;)

also grundsätzlich hast du ja ein formular <form method="POST" action="..."> nun kannst du in der PHP-Datei mit $_POST['feldname'] auf die einzelnen eingabefelder zugreiffen!

am besten schaust du dir mal das dazu an: http://tut.php-q.net/formulare.html

Domi
30.11.2005, 14:41:44
hi,

ja, poste uns doch wie OpendiX sagt mal den Code und sag uns, wo du hängst und gib uns evtl Fehlermeldungen auch gleich mit. (Bitte PHP-Tags des Forums nutzen)

Gruss

Domi

Parasite Eve
30.11.2005, 17:02:47
Danke für Eure schnellen Antworten!

Nun gut, ich versucht mal, meinen aus "Verzweiflung" erstellten Quellcode zu posten. Ich habe ihn eigentl. noch nicht in das Realdokument implementiert, sondern separat erstellt:

<?php
$brutto = 2456; // hie der hartcodierte Bruttobetrag
$lohnSt = 625.60;
$soli = 5.5; // berechnet von lohnSt
$rentenSt = 19.5;
$arbeitsSt = 6.5;
$pflegeSt = 1.7;
$kirchSt = 9;
$krk = 14; // Krankenkassensatz

// Variablen zur Berechnung des Soli + KirchSt Ergebnisses in EUR abhängig vom jeweils geltenden Steuersatz in Prozent.

$soliAnteil;
$kirchStAnteil;

// Variablen zur Berechnung des AN - Anteils zur Sozialversicherung.

$rentenStAnteil;
$arbeitsStAnteil;
$pflegeStAnteil;

$krkAnteil;

$berechnung1; // Ergebnis nach Abzug von LohnSt, KirchSt u. Soli
$berechnung2; // Ergebnis nach Abzug der Steuern zur Sozialversicherung

echo "PROGRAMM ZUR BERECHNUNG DES NETTOGEHALTS\n";
echo "----------------------------------------\n";

echo " Bruttogehalt: $brutto EUR.\n";

echo " Auflistung der Beitragssätze zur Sozialversicherung\n";

echo " Rentenversicherung: $rentenSt \n";
echo " Krankenversicherung: $krk \n";
echo "Arbeitslosenversicherung: $arbeitsSt \n";
echo "Pflegeversicherung: $pflegeSt \n";

echo " Die Lohnsteuer für das angegebene Gehalt beträgt: $lohnSt EUR.\n";

$soliAnteil = ($lohnSt * $soli) / 100;

echo "Der Solidaritätszuschlag beträgt $soli % von der Lohnsteuer: $soliAnteil EUR.";

$kirchStAnteil = ($lohnSt * $kirchSt) / 100;

echo " Die Kirchensteuer beträgt $kirchSt von der Lohnsteuer: $kirchStAnteil EUR.";

// Zwischenrechnung: Anzeige des sozialversicherungspflichtigen Bruttogehalts

$berechnung1 = $brutto - ($lohnSt + $soliAnteil + $kirchStAnteil);

echo " Bemessungsgrundlage für die Sozialversicherungsabgabe: $berechnung1 EUR.\n";

echo " AG - Anteil zur Sozialversicherung";

$rentenStAnteil = (($berechnung1 * $rentenSt) / 100) / 2;
$arbeitsStAnteil = (($berechnung1 * $arbeitsSt) / 100) / 2;
$pflegeStAnteil = (($berechnung1 * $pflegeSt) / 100) /2;
$krkAnteil = (($berechnung1 * $krk) / 100) / 2;

echo " Anteil Rentenversicherung: $rentenStAnteil EUR.\n";
echo " Anteil Arbeitslosenversicherung: $arbeitsStAnteil EUR.\n";
echo " Anteil Pflegeversicherung: $pflegeStAnteil EUR.\n";
echo " Anteil Krankenkasse: $krkAnteil EUR.\n";

// Endberechnung: Anzeige des auszuzahlenden Nettogehalts

$berechnung2 = $berechnung1 - ($rentenStAnteil + arbeitsStAnteil + pflegeStAnteil + krkAnteil);

echo "Das zu überweisende Nettogehalt beträgt $berechnung2 EUR.\n";
?>

Sorry, wenn ich jetzt nicht den Button zur Quellcodeeingabe benutzt habe, aber ich bin noch nicht sehr forumerfahren... :-(
Habe auch viel per echo rausgegeben, um zu sehen, ob meine Programmierung klappt...

Parasite Eve
30.11.2005, 17:03:40
Ich möchte diese Berechnung für alle möglichen Gehaltsangaben machen, und weiß leider nicht, wie ich das anstellen soll...

Opendix
30.11.2005, 17:47:23
Ja das ist doch ganz einfach :)

Schau dir nochma den link den ich oben gepostet hab an, da steht genau wie man das machen muss!

Kleiner Tipp:

$brutto = $_POST["brutto"]; //Damit holst du den Wert des eingabefeldes mit dem namen Brutto


und noch was anderes: in php must du variabeln nicht deklarieren, also könntest du dir gleich einige zeilen sparen (du darfst natürlich schon wenn du willst ;))

p.s. Bitte nächstes mal die PHP-Tags des Forums benutzen ;)

Parasite Eve
01.12.2005, 09:35:56
Hallo Opendix,

danke für deinen Tipp! Werd den jetzt erstmal ausprobieren und mich durch das quakenet:#php Tutorial durcharbeiten. Ich hoffe, dass ich bei evtl. weiteren Fragen weiterhin gut bei dir und den anderen Forumsteilnehmern aufgehoben bin. :-)

Andere Sache: Wie nutze ich die PHP-Tags des Forums in Zukunft?
Jede Zeile Coding einzeln eingeben, oder kann ich da auch mehrere Zeilen einfügen? Sorry fürs Fragen, aber das war mir noch nicht so ganz klar... :-(

Viele Grüße,

P.E.

Opendix
01.12.2005, 09:51:16
Bei weiteren Fragen stehen wir natürlich zur verfügung ;)

PHP-Tags nutzt du wie alle anderen Tags… also erst ein öffnen mit [ PHP ] und dann ein schliessen mit [ /PHP ] und dazwischen kopierst du einfach den Code aus deinem Programm, dann übernimmt er auch gleich die formatierung des Codes mit dem einrücken und so, so bleibt der Code auch lesbar ;)

edit: die tags natürlich ohne die Abstände zwischen den Klammern und dem PHP :)

Damir
01.12.2005, 10:46:05
Hi,

ich habe mal den Code fuer dich geaendert - sieht doch sofort besser aus;-))

Da ich Programmierer bin und dieser Gattung vorgehalten wird, das sie ein wenig "faul" sind (was auch gut ist, da es sonst keine Software geben wuerde - wir wollen ja mit wenig Aufwand immer viel erreichen) mache ich das mit den PHP-Code hier im Forum immer so:

1.) Deinen Quellcode komplett kopieren
2.) PHP-Tag anklicken - dann oeffnet sich ein Fenster
3.) Irgendwas reinschreiben - z.B. "sadsas" (einfach auf die Tastatur schlagen) ;-))
4.) OK druecken - jetzt hast du schon einmal den PHP-Tag drin.
5.) Einfach nur noch deinen kopierten Code in die PHP-Tags reinkopieren - das war es...

Soweit klar?????
Einfach mal versuchen.


Ich kann dir auch das Praxisbuch auf unserer Seite empfehlen - da findest du alles was du brauchst. Den Rest, den du nicht verstehst klaeren wir dann hier im Forum.
http://www.selfphp.de/praxisbuch/index.php

Bye Damir

Parasite Eve
01.12.2005, 12:33:25
Hi Damir,

das mit dem "PHP Tags nutzen" müsste das nächste Mal klappen :-), danke!
Ich verstehe momentan nicht, warum ich beim Auswerten von Formularen als Variable nicht mehr den Namen des entsprechenden Formularfeldes verwenden kann (stand in dem PHP Buch drin, was ich momentan benutze).

Bsp.:

<?php
// Zustand der Radiobuttons abfragen
if (isset ($kirche)) {
if($kirche = "ja") {
echo "Sie zahlen Kirchensteuer.";
}
} else {
echo "Sie sind von der Kirchensteuer befreit.";
}
?>

Ich hoffe, ich hab die Tags jetzt richtig benutzt, ansonsten klappt es dann beim nächsten Mal, versprochen!

Ein Arbeitskollege von mir meint, das geht jetzt nur noch mit globalen Variablen (wegen der Sicherheit bei der Datenübertragung) u. ich soll das mal mit $_POST [Variablenname]; versuchen.
Muss wohl jetzt erstmal Eure Seite dazu durchsuchen ;-), hab extra mal ohne "Ziel" gegoogelt, aber das brachte mir jetzt kein "globales" Verständnis, wie ich das in meinem Coding verwenden soll, da ich nicht weiß, welche Variable nun statt Formularname genutzt werden soll...

Gruß,
P.E.

Opendix
01.12.2005, 12:39:18
Hmm… und ich verweise nochmal auf meinen Link oben *g*
Wie alt ist den dein PHP-Buch?
Formulare solltest du mit $_POST[] bzw $_GET[] abfragen!

Hier noch der link auf der PHP-Seite: http://ch2.php.net/reserved.variables

Parasite Eve
01.12.2005, 13:12:14
Hi Opendix,

den Link hab ich nicht vergessen! Muss nur noch lernen, die Informationsflut in meinem Kopf zu bändigen ;-) und mich auf die Problemstellung zu konzentrieren, die mir gestellt wurde.

Das Buch ist vom Franzis Verlag u. heißt "Dynamische Webseiten mit PHP 4 -echt einfach", Autor: J. Franke.

Danke für den Link zu den reservierten Variablen! Bin jetzt fündig geworden zum Thema Formularauswertung auf Euren Seiten.

Damir
01.12.2005, 13:24:18
Hi,

ich kann verstehen das du dich auf deine Loesung konzentrieren musst - ist auch gut so. Frag einfach bevor du Kopfschmerzen bekommst. Heute helfen wir dir und bald hilfst du anderen - ich hoffe in diesem Forum ;-))

Bye Damir

Parasite Eve
01.12.2005, 14:27:45
Hi Damir,

klar, helfe ich in Zukunft gern!

Momentan versuche ich mich an deinem Beispiel zur Formularauswertung, habe es auf meine Bedürfnisse angepasst, leider klappt was nicht.

if (!$gesendet && !$name) { // $gesendet = Überprüfung Darstellungsphase
// $name = Überprüfung Auswertungsphase
?>
<FORM METHOD="POST"
// ACTION="bnr_auswertung.php"
ACTION="<?php echo $PHP_SELF ?>">
//NAME="auswertung">
<CENTER>
<TABLE WIDTH="90%">
<TR>
<TD><BR><FONT FACE="Arial">Brutto-Arbeitslohn</FONT></TD>
<TD><BR><INPUT TYPE="TEXT" NAME="brutto"> <FONT
FACE="Arial">Euro</FONT></TD>
<TD><BR><FONT FACE="Arial">

</FONT></TD>
</TR>
<TR>
<TD><FONT FACE="Arial">Jahr</FONT></TD>
<TD>
<SELECT NAME="jahr" SIZE="1"> <!-- Hier nur eine Jahresvorgabe, gesetzt auf 2005 -->
<OPTION VALUE="2005" SELECTED="SELECTED">2005</OPTION>
</SELECT></TD>
<TD><FONT FACE="Arial">

</FONT></TD>
</TR>
<TR>
<TD><FONT FACE="Arial">Steuerklasse:</FONT></TD>
<TD>
<SELECT NAME="stk" SIZE="1">
<OPTION VALUE="1" SELECTED="SELECTED">I</OPTION>
<OPTION VALUE="2">II</OPTION>
<OPTION VALUE="3">III</OPTION>
<OPTION VALUE="4">IV</OPTION>
<OPTION VALUE="5">V</OPTION>
<OPTION VALUE="6">VI</OPTION>
</SELECT></TD>
<TD><FONT FACE="Arial">

</FONT></TD>
</TR>
<TR>
<TD><FONT FACE="Arial">Kinderfreibetr&auml;ge:</FONT></TD>
<TD>
<SELECT NAME="zkf" SIZE="1">
<OPTION VALUE="0" SELECTED="SELECTED">0</OPTION>
<OPTION VALUE="0.5">0,5</OPTION>
<OPTION VALUE="1">1</OPTION>
<OPTION VALUE="1.5">1,5</OPTION>
<OPTION VALUE="2">2</OPTION>
<OPTION VALUE="2.5">2,5</OPTION>
<OPTION VALUE="3">3</OPTION>
<OPTION VALUE="3.5">3,5</OPTION>
<OPTION VALUE="4">4</OPTION>
<OPTION VALUE="4.5">4,5</OPTION>
<OPTION VALUE="5">5</OPTION>
<OPTION VALUE="5.5">5,5</OPTION>
<OPTION VALUE="6">6</OPTION>
</SELECT></TD>
<TD><FONT FACE="Arial">
</FONT></TD>
</TR>
<TR>
<TD><FONT FACE="Arial">Kirchensteuerpflichtig:</FONT></TD>
<TD><INPUT TYPE="RADIO" NAME="kirche" VALUE="1" CHECKED="CHECKED">
<FONT FACE="Arial">ja</FONT> <INPUT TYPE="RADIO" NAME="kirche" VALUE="2">
<FONT FACE="Arial">nein</FONT></TD>
<TD><FONT FACE="Arial">

</FONT></TD>
</TR>
<!-- Hier kommen die Beiträge zu Sozialversicherung -->

<TR>
<TD><FONT FACE="Arial">Kassensatz (nur gesetzliche KK):</FONT></TD>
<TD><INPUT TYPE="TEXT" NAME="kksatz" SIZE="5" VALUE=""></TD>
<TD><FONT FACE="Arial">
</TR>
<TR>
<TD><FONT FACE="Arial">Rentenversicherung:</FONT></TD>
<TD><INPUT TYPE="TEXT" NAME="rv" SIZE="5" VALUE="19,5" readonly></TD>
<TD><FONT FACE="Arial">

</FONT></TD>
</TR>
<TR>
<TD><FONT FACE="Arial">Arbeitslosenversicherung:</FONT></TD>
<TD><INPUT TYPE="TEXT" NAME="av" SIZE="5" VALUE="6,5" readonly></TD>
<TD><FONT FACE="Arial">

</FONT></TD>
</TR>
<TR>
<TD><FONT FACE="Arial">Pflegeversicherung:</FONT></TD>
<TD><INPUT TYPE="TEXT" NAME="pv" SIZE="5" VALUE="1,7" readonly></TD>
<TD><FONT FACE="Arial">

</FONT></TD>
</TR>
<?php

} else {
echo "
Folgende Daten wurden übermittelt:<p>
Brutto-Arbeitslohn: $brutto
Jahr: $jahr
Steuerklasse: $stk
Kinderfreibeträge: $zkf
Kirchensteuerpflicht: $kirche
Kassensatz: $kksatz
Rentenversicherung: $rv
Arbeitslosenversicherung: $av
Pflegeversicherung: $pv
<p>
<form method=POST action=$PHP_SELF>
<CENTER><INPUT TYPE="SUBMIT" NAME="Submit1" VALUE="Berechnen">
<INPUT TYPE="RESET" NAME="Reset1" VALUE="Eingaben löschen"></CENTER></TD>
</CENTER>
</FORM>
</p>
";
}

Mein Editor (HomeSite 5.5) meckert, dass ab der Stelle "Folgende Daten werden übermittelt".... Form-Tags im PHP-Code stehen. So hab ich das aber verstanden. Mein Server spuckt mir hierzu diese Zeilen aus:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\apachefriends\xampp\htdocs\eva\brutto_netto_rechner\bnr_auswertung. php on line 138

Hoffe, ich stelle mich nicht allzu dämlich an... :-(
Um den Zusammenhang besser darzustellen, hab ich auch den HTML Code mitgepostet, werde aber in Zukunft versuchen, Euch nicht immer mit allem "zuzuballern". Mein Problem ist, dass ich fertigen Code aus dem Netz (wegen Zeitdruck) auf meine Aufgabe hin angepassst habe u. nun kämpfe ich mit den PHP Anfängen und mit dem fremden Code...

Opendix
01.12.2005, 14:45:27
na dann schau doch mal auf der zeile 138 :)

wie du hier dank syntax-highlithing (oder so :P) gut sehen kannst besteht dein echo aus rot udn blau, allerdings soltle da NUR rot sein!
du musst die " in dem html escapen ansonsten meint der PHP-Parser da sei der Strign, den du mit echo ausgeben willst fertig, was dann anschliessend zu einem Parse.Error führt!

also must du das so machen


echo "<form methode=\"POST\" action=\"www.seite.de\"><input type=\"text\" name=\"name\">";



wichtig sind die \ vor den "! damit sagst du dem parser, Er soll das nächste Zeichen, hier ein " ignorieren!

vt1816
01.12.2005, 14:54:21
Im HTLM-Teil werden <form> und <center > nicht beendet.

Damir
01.12.2005, 15:17:04
Hi

mir ist folgendes aufgefallen - denke immer daran, dass alle per FORM uebermittelten Daten per $_POST['variablenname'] abgefragt werden muessen.

Was ist hiermit????
if (!$gesendet && !$name) {

werden die gesendet???? Wenn ja, dann musst du es so machen:

if (!$_POST['gesendet'] && !$_POST['name']) {

Bye Damir

Parasite Eve
01.12.2005, 15:31:04
Hi Damir,
danke für die Info, das was du aber jetzt geschrieben hast, steht aber nicht in deinem Beispielcode, oder hab ich da nicht richtig nachgeschaut??

Danke auch an die anderen für ihre Tipps und Hilfen!

Opendix
01.12.2005, 15:38:00
das steht in den ersten paar zeilen von deinem bsp-code :P

Parasite Eve
01.12.2005, 15:51:08
Dann versuche ich die Frage mal anders zu formulieren ;-) :

Warum reicht für die Abfrage in PHP nicht einfach das form method="POST" im Formular selbst? Wann genau wird $_POST verwendet? Wenn PHP verwendet wird? (Ich hab mir die "referenced variables" in php.net angeschaut. Fand es nicht sehr aussagekräftig.) Ich glaub, ich kriege HTML und PHP durcheinander, was deren "Funktionen" angeht. HTML=Auszeichnungssprache, PHP=Skriptsprache, das ist jedenfalls schonmal klar. :-D Finde es verwirrend, das PHP Coding direkt in den HTML Code schreiben zu müssen, aber wenn ich es separat machen würde, dann wäre das nur komplizierter, oder?

Gruß,
P.E.

Opendix
01.12.2005, 16:03:03
Unterschied von HTML-PHP

PHP läuft auf einem Server ab, der Besucher wird das nie zu gesicht bekommen. Also eine Serverseitige Scriptsprache!!
HTML läuft auf dem PC des Besuchers ab! Also eine Clientseitige Scriptsprache

Also nun zu dem POST
Du kannst die Daten von einem Formular via die GET oder POST methode an dein PHP-Script übergeben. (GET per Adressleiste und POST im Hintergrund)
Welche verwendet wird, kannst du ganz einfach im <form>-tag des Formualrs angeben! Genauso musst du da in der action angeben durch welche Seite dein Formular verarbeitet werden soll. In deinem Fall wohl $_SERVER[' PHP_SELF'], da dies die eigenen Seite zurück gibt.

$_POST wird nun immer dann verwendet, wenn du auf irgendweclhe Daten zugreiffen willst, die der Besucher in deinem Formular eingegeben hat.

Wo liet den nun noch was Problem?

Parasite Eve
01.12.2005, 16:18:19
Hi, ich hab einfach nur HTML COde mit PHP Code gedanklich "gemischt".
Das war das Problem. Sorry, aber es wird mir jetzt klar...

Damir
01.12.2005, 17:26:47
Also klappt es jetzt??????

|Coding
01.12.2005, 20:37:08
...HTML läuft auf dem PC des Besuchers ab! Also eine Clientseitige Scriptsprache...
HTML ist, wie der Name es schon sagt "Hypertext Makeup Language", eine Auszeichnungssprache!

feuervogel
01.12.2005, 20:49:35
HTML ist, wie der Name es schon sagt "Hypertext Makeup Language", eine Auszeichnungssprache!

*möööp* Hypertext Markup Language :-)

|Coding
01.12.2005, 20:56:01
Öhm, so könnte man es auch nennen :-)

Damir
01.12.2005, 20:58:46
Man kann aber auch "MakeUp fuer Hypertext Language" sagen - werde es gleich mal bei Wikipedia posten;-))

Bye Damir

Parasite Eve
02.12.2005, 09:33:34
Hallo Damir,

momentan scheint es zu klappen. Vielen Dank für Eure Geduld bis jetzt. Werde Euch auf dem Laufenden halten.

Gruß,
P.E.

Damir
02.12.2005, 10:10:48
Kein Problem - ja mach das :-)

Bye Damir

Parasite Eve
02.12.2005, 10:10:54
So, habe jetzt auch eine Auswertung der Radiobuttons hinbekommen.
Allerdings habe ich noch eine Verständnisfrage zum Quellcode:

<?php
// Zustand der Radiobuttons abfragen
if (($kirche == 0)) { ?>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="1"><FONT FACE="Arial">ja</FONT>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="0" CHECKED="CHECKED"> <FONT FACE="Arial">nein</FONT>
<?php
} else {
?>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="1" CHECKED="CHECKED"><FONT FACE="Arial">ja</FONT>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="0"> <FONT FACE="Arial">nein</FONT></TD>
<?php
}
?>

<?php
if (isset ($kirche))
{
if($kirche == 1)
{
echo "Sie zahlen Kirchensteuer.";
} else {
echo "Sie sind von der Kirchensteuer befreit.";
}
}
?>




Warum wird der Variable $kirche eine Null zugewiesen, wo der Button doch standardmäßig auf "ja", d.h. value="1" gesetzt ist?

Soeren
02.12.2005, 10:18:12
Wenn ich das richtig sehe, weist du ihr nicht den Wert zu, sondern überrpüfst nur ob sie den Wert hat
if (($kirche == 0)) {
} else {

}


bedeutet doch soviel wie:

Wenn Kirche den Wert 0 hat mach das und das ( if (($kirche == 0)) { }), sonst mach das... ( else {} )

Parasite Eve
02.12.2005, 10:26:49
Danke Soeren,

jetzt verstehe ich das, aber auch erst, als ich den Rest des Quellcodes hinzugefügt hatte. Also: Wenn $kirche==0 und Button gesetzt auf "nein", dann "Sie sind...befreit", ansonsten wenn $kirche==1 und Button gesetzt auf "ja", dann "Sie müssen...zahlen".

Opendix
02.12.2005, 10:29:58
Auch radio-Buttons sind mit $_POST[""] abzufragen!!!

und mach doch einfach so:

If($_POST["kirche"] == 1)
{
//Hier das zeugs was dein Script machen soll
}
else
{
//Hier das HTMl-Formular
}

Parasite Eve
02.12.2005, 10:38:11
Hi Opendix,

will dich nicgt zur Verzweiflung bringen ;-), probiere das jetzt auch aus, was du sagst, aber es hat doch auch ohne deinen Quellcodezusatz geklappt. Das wundert mich etwas...

Opendix
02.12.2005, 10:47:47
Es mag vielleicht funktionieren! Aber wenn auf php.net steht, man solle $_POST verwenden, dann sollte man das auch ;)

Damir
02.12.2005, 10:54:22
Hi,

das funktioniert aber auch nur bei "0"!!!!!!

Die Variable $kirche fragst du falsch ab - $_POST['kirche'] ist richtig.

Bei deiner Uebermittlung gibt es die Variable $kirche nicht - somit ist sie "NULL" - also "0".


Bye DAmir

Parasite Eve
02.12.2005, 10:56:39
und mach doch einfach so:

PHP-Code:
If($_POST["kirche"] == 1)
{
//Hier das zeugs was dein Script machen soll
}
else
{
//Hier das HTMl-Formular
}


Wie binde ich das $_POST denn in mein oben gespostetes Coding rein?
Muss doch innerhalb des PHP Codes eine if-else Abfrage durchführen und innerhalb des HTML Blocks auch! Irgendwie klappt es nicht mehr, wenn ich versuche, mit $_POST zu arbeiten, wahrscheinl. ist meine Syntax falsch.

Grüße,
P.E.

Damir
02.12.2005, 11:03:36
Hi,


schmeiss das raus:
<?php
// Zustand der Radiobuttons abfragen
if (($kirche == 0)) { ?>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="1"><FONT FACE="Arial">ja</FONT>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="0" CHECKED="CHECKED"> <FONT FACE="Arial">nein</FONT>
<?php
} else {
?>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="1" CHECKED="CHECKED"><FONT FACE="Arial">ja</FONT>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="0"> <FONT FACE="Arial">nein</FONT></TD>
<?php
}
?>


und pack das rein:

<INPUT TYPE="RADIO" NAME="kirche" VALUE="1" <?PHP if($_POST['kirche'] == '1') echo 'CHECKED'; ?>><FONT FACE="Arial">ja</FONT>
<INPUT TYPE="RADIO" NAME="kirche" VALUE="0" <?PHP if(!$_POST['kirche'] || $_POST['kirche'] == '0') echo 'CHECKED'; ?>> <FONT FACE="Arial">nein</FONT>


ist auch kuerzer.

Bye Damir

Parasite Eve
02.12.2005, 12:29:53
Vielen Dank, Damir!

Ist auf jeden Fall strukturierter als mein "Spaghetti-Code".

Parasite Eve
05.01.2006, 11:34:34
Liebes Selfphp-Forum Team!

Bin mit meinem Brutto-Netto-Rechner nun recht gut vorangekommen (vielen Dank auch für Eure Geduld u. tatkräftige Unterstützung!), nun habe ich zwei kleine "Schönheitsfragen".

1. Wenn ich eine Variable auf Nachkommastellen runden will, dann benutze ich die Funktion round (); .
Beispiel:

$soli = round($soli);

Allerdings bekomme ich nun gar keine Nachkommastellen mehr ausgegeben, ich hätte das Ergebnis aber gern auf 2 Nachkommastellen gerundet. Welche Parameter müsesen in die Klammern, damit obiger Satz zutrifft?

2. Hier habe ich eine Berechnung, im Formular wird jedoch vorab, ohne die benötigten Eingaben eine Null ausgegeben.

Bsp. Berechnung:

$soli = $lohnSt*5.5/100;

Bsp. Ausgabe im Formular:

Solidaritätszuschlag: 0 Euro

Diese Ausgabe sieht aber nicht überall so aus (Ausgabe im Formular):

Kirchensteuer: Euro

Zur Kirchensteuer zugehörige Berechnung:

if ($b_kirche == 1)
{$kirchenSt = lohnSt*9/100;}

Wie kann ich die Null in beim Laden des Formulars (ohne getätigte Eingaben) unterdrücken?

Gruß,
Parasite Eve

vt1816
05.01.2006, 11:47:31
1. round (http://de2.php.net/round)
2. Wie hast Du die dazugehörigen Variablen initialisiert?

Parasite Eve
05.01.2006, 12:00:07
Hi vt1816,

Zu 2) $soli habe ich erst bei der Berechnung initialisiert, $kirche auch,
die boolsche Variable $b_kirche wurde der Wert 1 zugewiesen.

Zu1) Danke für den Link, möchte jedoch keine festen Zahlen übergeben, wie stelle ich die Nachkommastellen bei einer Variablen klar?

xabbuh
05.01.2006, 13:47:42
Zu1) Danke für den Link, möchte jedoch keine festen Zahlen übergeben, [...]
Es ist egal, ob du Werte, die du an eine Funktion übergibst, aus einer Variablen kommen oder fest im Quellcode stehen.

wie stelle ich die Nachkommastellen bei einer Variablen klar?
Wie bitte?

vt1816
05.01.2006, 13:54:24
Hi vt1816,

Zu 2) $soli habe ich erst bei der Berechnung initialisiert, $kirche auch,
die boolsche Variable $b_kirche wurde der Wert 1 zugewiesen.

Zu1) Danke für den Link, möchte jedoch keine festen Zahlen übergeben, wie stelle ich die Nachkommastellen bei einer Variablen klar?
1.) $soli = round($soli, 2); Bitte nicht nur auf den Link klicken, auch den (gesamten) Text inkl. Beispiele lesen, denn wer lesen kann ... ;-)

2.) Initialisiere $soli und $kirche mit 0 (bzw. VALUE="0" im Formular), dann sollte das Problem behoben sein, denn wenn $b_kirche <> 1 erhält $kirche keinen Wert.

Parasite Eve
05.01.2006, 14:17:36
Auf jeden Fall erstmal danke für die präzisen, verständlichen Antworten, aber... hey, ich hab' mir den gesamten Text durchgelesen, aber die konkrete Fallanwendung

$soli = round($soli, 2);

wollte sich mir nicht so erschließen... :-( da ich noch Anfänger bin u. das Besipiel nicht direkt auch meinen Bedarf hin zumünzen konnte. Aber das wird noch, da bin ich zuversichtlich, deswegen danke für den Wink mit der Holzhandlung ;-)
Dank auch an xabbuh für das Licht am Ende meines Wissenstunnels...
nun werd ich erstmal ausprobieren!