Drei Probleme mit PHP-Skript

Hallo zusammen !

Ich hoffe, jemand kann mir bei meinen Problemen mit PHP helfen.
Folgendes: Ich bastle an einer Homepage, die 4 DIV-Bereiche
(Header, vertikale Navigationsleiste links am Rand, Content rechts daneben und Footer) hat.

Über die Navigationsleiste aufgerufene PHP-Seiten werden mittels Load-Funktion in den DIV-Bereich Content geladen und angezeigt. Sinn ist, dass nicht bei jedem Aufruf die komplette Seite (also Header, Navigation und Footer) neu geladen werden muss. Das klappt auch im Großen und Ganze gut, ABER…

…nun habe ich mit einem Kontaktformular Probleme, dass ebenfalls
bei Aufruf über die Navigation im DIV-Bereich Content angezeigt werden soll. Ich bekomme das Formular, welches ja ein PHP-Skript ist, im Content-DIV gestartet, habe dann aber folgende unerwünschte Effekte:

  1. Die Schrift auf der gesamten Website wird mit Aufruf des Formulars kleiner ! Rufe ich eine andere Seite über die Navigation auf, nimmt die Schrift wieder die normale Größe an.
  2. Das Formular prüft ja die Eingaben auf Vollständigkeit und gibt bei unvollständiger Eingabe eine Fehlermeldung neben dem entsprechenden Textfeld aus. Soweit so gut. Unerwünscht ist aber, dass das Formular und damit die ganze Seite neu geladen wird, was zur Folge hat, dass Header, Navigationsleiste und Footer veschwinden.
  3. Dann habe ich trotz Charset-Befehl immer noch keine korrekte Darstellung der Umlaute.

Kann mir jemand erklären, wie ich die Probleme lösen kann ?

Gruß Kai

Hallo Kai,

ich fasse mich kurz, weil ich - offen gestanden - nur die Hälfte Deiner Infos verstehe und ohne mir den Code anzuschauen auch nicht nachvollziehen kann wo genau was passiert. Wenn Du nicht die ganze Seite neu laden möchtest, welche Technik nutzt Du dafür? o0

  1. Wenn sich Probleme mit Deinem CSS ergeben, schau als allererstes mal nach, ob möglicherweise irgendwelche unvollständigen Tags im Code auftauchen. Oder doppelte… Oder Inline-CSS… Im Zweifel schau mal in der Fehlerkonsole von Firefox oder Chrome (F12-Taste) nach den Eigenschaften Deiner HTML-Elemente…

  2. Das Zauberwort heisst HTML5-Formulare. Die validieren nämlich schon vor Versand der Daten. Vorausgesetzt, Du hast alle Eigenschaften richtig deklariert. Oh UND: Wenn alles ausser dem Formular „verschwindet“, dann ist das keinesfalls falsch. Vermutlich hast Du die „action“ des Formluars so eingestellt, dass es sich selbst aufruft. Damit kann dann natürlich auch nichts anderes mehr geladen werden.
    Deshalb ergibt es durchaus Sinn, entweder die gesamte Seite neu zu laden, oder eine anständige Funktion zu bauen, die solche Dinge auffängt. Möglich wäre zum Beispiel, die Eingaben zusammen mit einem Identifier an die Index.php zu schicken. Der Identifier sagt der index.php dann, dass das Formular verarbeitet werden soll, also lädt es die entsprechende Datei in Dein Content-DIV und verarbeitet die Daten.

  3. Könnte daran liegen, dass Du neue Daten in die Seite lädst, die eben noch nicht mit dem entsprechenden Charset deklariert sind.

Zuletzt: Solange Du nicht triftige Gründe dafür hast, die Navigation nicht immer mit zu laden, mach es einfach. Das tut niemandem Weh und erspart Dir eine Menge unnötige Arbeit.

Hoffe das hilft Dir wenigstens ein bisschen.