Wenn Sie eine Vorlagendatei haben, die geparst wird, wo Sie PHP->Smarty zugewiesene Variablen ausgeben können, könnten Sie eine globale JS-Variable in der Vorlage erstellen und diese globale Variable dann wie üblich in Ihrem JS verwenden.
Zum Beispiel:
Vorlage-Datei
<script type="text/javascript">
var MyGlobalVar = "{$MyGlobalVar}";
</script>
Global.js-Datei
$(document).ready(function(){
$("button").click(function(){
if (MyGlobalVar != '') {
$("#div1").html(MyGlobalVar);
} else {
alert('Error! Error! Abort!');
}
});
});
Beachten Sie, dass Sie die Global.js-Datei ausgeben können, während sie von Smarty geparst wird (obwohl... das wahrscheinlich keine gute Idee ist) und Ihre PHP->Smarty-Variablen auf diese Weise injizieren. Dies würde die Global.js-Datei als Smarty-Vorlage behandeln.
Hierfür müssen Sie Folgendes verwenden {literal}
, benennen Sie die Datei wahrscheinlich mit einer .php-Endung (damit sie von PHP geparst werden kann) und fügen Sie ein PHP header()
aufrufen, damit PHP den Inhalt der Datei als Javascript-Content-Type an den Browser ausgibt.
Global.js
<?php
header("content-type: text/javascript");
?>
var MyGlobalVar = "{$MyGlobalVar}";
{literal}
$(document).ready(function(){
$("button").click(function(){
if (MyGlobalVar != '') {
$("#div1").html(MyGlobalVar);
} else {
alert('Error! Error! Abort!');
}
});
});
{/literal}
Außerdem sollten Sie auf der PHP-Seite in Erwägung ziehen, Ihrer Variable Schrägstriche hinzuzufügen, insbesondere wenn die JS-Variable HTML oder andere Textteile enthält, die einfache/doppelte Anführungszeichen verwenden.