Probleme mit PHP Klassen

mh also Grundsätzlich: Jede Klasse bekommt eine eigene Datei.
Und in der Steht nur die Klasse mehr nicht.
Innerhalb einer klasse kannst du natürlich auch mit include arbeiten.
Include bedeutet ja nur "lese Datei und führe Code an dieser stelle aus".
Ich würde dir schon empfehlen gerade die großen Brocken HTML in externe tpl Files auszulagern.
Wie gesagt ich hab mir da stark das EVA Konzept angewöhnt und trenne immer meine Scriptlogik von der Ausgabe.
Aber aufzwingen will ich es dir auch nicht kann nur sagen dass ich damit sehr gute Erfahrung habe.

Ein Tip noch:
Statt große HTML Blöcke in die echo Funktion zu pressen solltest du php wieder zumachen.
Bsp:
PHP:
<?php
...
    function T_eintragen_form() {
?>
<div id='main_content'><table cellpadding='10' align='center'> 
                <th>
                    <h1>Termindaten hier eingeben!</h1> 
                </th>
                <form action='<?=$_SERVER["SCRIPT_NAME"];?>' method='post' name='termin' onsubmit='return vollst()'>
...    
<?php
    }    
#--- Termine eintragen ---#
    function T_eintragen($g_tag, $g_ort, $g_rasen, $g_art, $g_gegner, $g_home_away, $g_datum, $g_zeit, $uebergabe)  {
...
?>
Wie du in dem Ausschnitt vielleicht erkennst hab ich hier die Variable $_SERVER["SCRIPT_NAME"] per Kurzschreibweise ausgegeben.
Auch While und If ist in Kurzschreibweise verfügbar.
Damit mach ich zum Beispiel alle Ausgaben in Templates. (tpl files die als php file inkludiert werden und hauptsächlich html und wenig php aber in Kurzschreibweise enthalten.)
 
Hi,
Danke für die Hilfe und die Tipps. Ich habe mir das alles zu Herzen genommen und damit ein bisschen rumgespielt. Ich werde jetzt meinen Code versuchen so umzuschreiben bzw. so zu ändern, dass er so aufgebaut ist wie ihr das vorgeschlagen habt.

Ich hab aber noch zwei weitere Fragen:
1. kann mir vielleicht jemand sagen wie ich das mit der Ausgabe (bzw- den includes) innerhalb der Klasse realisieren soll. Bisher hab ich das einfach mittels div ausgegebn für das ich in der css Datei eine absolute Position festgelegt habe. Das funktioniert aber nicht gut, weil das in verschiedenen Browsern und verschiedenen Monitoren anders angezeigt wird. Es soll sich nur das main_content ändern, der Rest soll immer gleich bleiben. Was ich mir überlegt habe ist den ganzen index Code einfach imm Kann man das irgendwie lösen.

2. Kann man das lösen, dass die Ausgaben der Klassen nicht bei jedem Refresh verschwinden.

lg Meiki
 
1. kann mir vielleicht jemand sagen wie ich das mit der Ausgabe (bzw- den includes) innerhalb der Klasse realisieren soll.
Ich verstehe nicht was daran so kompliziert ist.
PHP:
    function T_eintragen_form() {
        include("form.tpl");
    }
form.tpl:
PHP:
<div id='main_content'><table cellpadding='10' align='center'> 
                <th>
                    <h1>Termindaten hier eingeben!</h1> 
                </th>
                <form action='<?php echo $_SERVER["SCRIPT_NAME"];?>' method='post' name='termin' onsubmit='return vollst()'>
               ...
                </form>
                </table></div>



2. Kann man das lösen, dass die Ausgaben der Klassen nicht bei jedem Refresh verschwinden.
?
 
Zuletzt bearbeitet:
Hi, also zum 1.:
Wenn ich das so mache wie du das gschrieben hast wird das in jedem Broser anders bzw. falsch angezeigt!

2. Wenn ich z.B. die Funktion T_eintragen_form() aufgerufen habe und ich refreshe die Seite, dann ist das was die Funktion ausgegeben hat verschwunden.

lg Meiki
 
Wenn ich das so mache wie du das gschrieben hast wird das in jedem Broser anders bzw. falsch angezeigt!
Es gibt bei PHP keine Browserunterschiede da PHP Serverseitig ausgeführt wird. Der Fehler muss dann in deinem HTML-Quellcode liegen.

Wenn ich z.B. die Funktion T_eintragen_form() aufgerufen habe und ich refreshe die Seite, dann ist das was die Funktion ausgegeben hat verschwunden.
Wenn der refresh die Funktion erneut aufruft dann muss auch wieder das selbe ausgegeben werden.
Hast du denn GET oder POST eingaben die nach dem refresh nicht erneut geschickt werden?
 
Zurück