2016-04-15 2 views
1

Ich erstelle ein benutzerdefiniertes Modul in Prestashop. In diesem Modul möchte ich meine PHP-Variable in der JS-Datei verwenden. Wie kann ich auf den Wert in der js Datei zurückgreifen. Ich möchte die Variable nicht an die Smarty-Datei übergeben. Die js-Datei ist in der Kopfzeile angehängt. Kann mir jemand sagen, dass er den PHP-Wert an die externe js-Datei übergeben soll, die in der Kopfzeile angehängt ist?Prestashop Zugriff PHP-Variable in einer js-Datei, die in Header angehängt ist?

Jede Hilfe und Anregung wird wirklich spürbar sein. Danke

+0

für eine einzelne Variable i es als Smarty Variable geben würde vorschlagen, die einzigen anderen Weg, eine Variable von PHP zu erhalten, ist eine Ajax-Anforderung, um den Variable abzurufen die könnte übertrieben sein – defuzed

+0

@defuzed danke für den Kommentar. Aber meine js-Datei ist eine externe Datei, ich meine nicht in meiner Smarty-Datei, also wie kann ich den Wert übergeben? – NewUser

Antwort

-1

Du wirst es durch Smarty passieren müssen, obwohl du es nicht willst (warum?). Sie Modul Haken bereits auf displayHeader Haken, dann ist es eine Frage der

public function hookDisplayHeader($params) 
{ 
    $this->context->controller->addJS($this->getPathUri().'views/js/%your_js_file%.js'); 

    $this->context->smarty->assign('foo', 'bar'); 

    return $this->display(__FILE__, 'header.tpl'); 
} 

Ihre header.tpl würde wie etwas aussehen:

<script type="text/javascript"> 
    var foo = "{$foo|escape:'htmlall':'UTF-8'}"; 
</script> 

Und dann in Ihrem Javascript-Datei, die Sie global foo Variable verwenden können.

3

Hier ist, wie es zu tun

Media::addJsDef(array('var_name' => $variable)); 
Verwandte Themen