3 Stimmen

Verwendung von Smarty-Variablen innerhalb einer jQuery-Funktion

Meine php generiert einen Typ aus der DB und wird an eine Smarty-Variable $X übergeben.

Mit Hilfe von Jquery, möchte ich in der Lage sein, eine Schaltfläche zu klicken, und der Inhalt eines meiner div wird mit $X ersetzt werden.

$(document).ready(function(){
  $("button").click(function(){
    $("#div1").html($X);
   });
});

Dieser Teil des Jquery-Skripts ist in einer externen js-Datei enthalten.

4voto

Jared Farrish Punkte 47037

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X