21 Stimmen

Wie man PHP-Session-Variablen von jQuery-Funktion in einer .js-Datei zugreifen?

Wie man PHP-Session-Variablen von jQuery-Funktion in einer .js-Datei zugreifen? In diesem Code möchte ich den "Wert" einer Session-Variablen abrufen

$(function() {
   $("#progressbar").progressbar({
      value: 37
   });
});

0voto

Alexander Punkte 554

Dies ist streng genommen nicht die Verwendung von jQuery, aber ich habe diese Methode einfacher gefunden als die Verwendung von jQuery. Es gibt wahrscheinlich unendlich viele Methoden, dies zu erreichen und viele clevere hier, aber nicht alle haben für mich gearbeitet. Die folgende Methode hat jedoch immer funktioniert, und ich gebe sie weiter, falls sie jemand anderem hilft.

Es werden drei Javascript-Bibliotheken benötigt, createCookie , readCookie y eraseCookie . Diese Bibliotheken gehören mir nicht, aber ich habe vor etwa 5 Jahren begonnen, sie zu verwenden, und weiß nicht, woher sie stammen.

createCookie = function(name, value, days) {
if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
}
else var expires = "";

document.cookie = name + "=" + value + expires + "; path=/";
}

readCookie = function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
eraseCookie = function (name) {
   createCookie(name, "", -1);
}

Um sie aufzurufen, müssen Sie eine kleine PHP-Funktion erstellen, normalerweise als Teil Ihrer Support-Bibliothek, wie folgt:

<?php
 function createjavaScriptCookie($sessionVarible) {
 $s =  "<script>";
 $s = $s.'createCookie('. '"'. $sessionVarible                 
 .'",'.'"'.$_SESSION[$sessionVarible].'"'. ',"1"'.')';
 $s = $s."</script>";
 echo $s;
}
?>

Alles, was Sie jetzt in Ihre index.php-Datei einfügen müssen, ist also

$_SESSION["video_dir"] = "/video_dir/";
createjavaScriptCookie("video_dir");

Jetzt können Sie in Ihrer javascript library.js den Cookie mit dem folgenden Code wiederherstellen:

var videoPath = readCookie("video_dir") +'/'+ video_ID + '.mp4';

Ich hoffe, das hilft.

0voto

Ardhi Punkte 2529

Seltsamerweise funktioniert der direkte Import von $_SESSION nicht, aber ich muss dies tun, damit es funktioniert:

<?php
$phpVar = $_SESSION['var'];
?>

<script>
    var variableValue= '<?php echo $phpVar; ?>';
    var imported = document.createElement('script');
    imported.src = './your/path/to.js';
    document.head.appendChild(imported);
</script>

und in to.js

$(document).ready(function(){
alert(variableValue);
// rest of js file

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