Frage

Angenommen, ich verwende ein MVC-Framework und meine Ansichten erfordern Javascript-Dateien, die sich in einer Datei außerhalb der Ansicht befinden.Mein in der externen Datei befindliches Javascript hängt meiner Ansicht nach jedoch von einigen PHP-Variablen ab.Wenn ich das Javascript in ein Tag in meiner HTML-Ansicht einbinden würde, könnte ich einfach die PHP-Variablen in das Javascript einfügen.

Ich weiß, dass ich versteckte Eingabefelder erstellen und die benötigten Variablen als Werte zuweisen kann.Gibt es eine andere, elegantere Möglichkeit?

Ich weiß, dass ich wahrscheinlich damit durchkomme, die .js-Datei in .php zu benennen, aber ich mache das nicht so gern.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob ich Ihre Frage vollständig zu verstehen, aber wenn ich den Kern Recht habe, könnte man nicht nur globale JavaScript-Variablen in einem Skript-Tag in der Ansicht festgelegt, die dann an den externen js weitergegeben würden?

<script type="text/javascript">
  var myvar1 = <?=$myvar1 ?>;
  var myvar2 = "<?=$myvar2 ?>";
</script>
<script type="text/javascript" src="myexternaljs.js"></script>

Andere Tipps

Sie könnten von JS aus einen Anruf an den Server tätigen (z. B.REST), um die Variablen zu erhalten, von denen Sie abhängig sind.Dafür müsste man einen Service anlegen, die Struktur würde aber sauber bleiben.

Sie können entweder veröffentlichen sie auf der Seite, bevor Sie andere Skripte enthalten, oder ähnliches verwenden und auch die PHP-Datei wie eine js-Datei:

ob_start();
//all variables here
echo 'var someJson = '
    . json_enode($someArray);
$content = ob_get_clean();

header('Content-Type: text/javascript');
header('Content-Length: ' . strlen($content)); //or mb_strlen with utf8
echo $content;
exit;

Sie können die Header hinzufügen, Caching mit ETAG, um (Hashing / id), zuletzt geändert oder ausgelaufen / Pragma.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top