TS: php function und javascript

Beitrag lesen

Hallo und guten Morgen,

ich möchte an einer Stelle eines Funktionsaufrufes einen Wert wissen, der sich erst später ergibt.

Konkret:

zeige_zeilen("Es werden XY Zeilen aufgeführt");
include("meine_include_datei.php");

Ich würde gerne die Funktion selber unberührt lassen, weil ich sie in anderen Kontexten noch benutze.

Ist es irgendwie möglich, den XY-Wert im Parameterstring, der sich erst aus der "meine_include_datei.php" ergibt, per JS im Nachhinein einzutragen? Welche Möglichkeiten bleiben mir sonst noch (falls das nicht möglich ist)

Der Designfehler oder auch das notwenige (?) Forward befinden sich auf dem Server. Warum willst Du es dann noch in den Client verschleppen und damit die Unsicherheit einer richtigen und vollständigen Bearbeitung des Requests noch erhöhen?

Es gibt nur zwei Möglichkeiten:

  1. Das Design ändern und die Funktionsausführung erst nach der Festlegung der notwendigen Parameter anstoßen.

  2. Die Funktion nur Platzhalter bereitstellen lassen, die erst (kurz) vor der Ausgabe mit den bis dahin (hoffentlich) bekannten Werten gefüllt werden.

In zweiten Fall muss die Ausgabe verzögert werden. PHP bietet dazu den Output-Buffer an.
http://php.net/manual/en/ref.outcontrol.php
Mit ob_start() kannst du den Buffer starten, dann später im Buffer die Platzhalter tauschen gegen die Werte und ganz zum Schluss die Ausgabe veranlassen.

Derartige Probleme treten meistens dann auf, wenn man HTML und PHP bunt mischt, z. B., wenn man in ein Mastertemplate (HTML) PHP-Ausgaben einbauet und einm dann erst später einfällt, dass der Wert des <title>-Tag noch mit einem Wert gefüllt werden muss, der sich aus den Includes (z.B. Auswertung der POST-Parameter) ergibt.

Es ist daher besser, Requestauswertung, Werteberechnung und -Beschaffung, Festlegung des Markups und erst zum Ende die Ausgabe zu trennen. Siehe auch EVA-Prinzip.

Grüße
TS