// start your session
session_start();
// get session from database or create you own
$session_username = $_SESSION['John'];
$session_email = $_SESSION['johndoe@jd.com'];
$response = new stdClass();
$response->session_username = $session_username;
$response->session_email = $session_email;
$i = 0;
while ($row = mysqli_fetch_array($result)) {
$response->rows[$i]['id'] = $row['ID'];
$response->rows[$i]['cell'] = array("", $row['rowvariable1'], $row['rowvariable2']);
$i++;
}
echo json_encode($response);
// this response (which contains your Session variables) is sent back to your JQUERY
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);
}
7条答案
按热度按时间m4pnthwp1#
您可以通过PHP生成javascript文件。没有规定javascript文件必须具有.js扩展名。例如,在HTML中:
然后您的脚本文件:
如果没有这种方法,可以在javascript文件中放入一个 AJAX 请求,然后从服务器端脚本以JSON格式返回数据。
y53ybaqx2#
我也在纠结同样的问题,偶然发现了这个页面。我想出的另一个解决方案是这样的:
在html中,将session变量(我的这里是
$_SESSION['origin']
)回显到您选择的任何元素:<p id="sessionOrigin"><?=$_SESSION['origin'];?></p>
在js中,使用jQuery可以像这样访问它:
$("#sessionOrigin").text();
**编辑:**或者更好的方法是,将其放在隐藏的
input
中<input type="hidden" name="theOrigin" value="<?=$_SESSION['origin'];?>"></input>
rpppsulh3#
如果您希望保持PHP和JS之间更清晰的分离(这使得IDE中的语法突出显示和检查更容易),那么您可以为代码创建JQuery插件,然后将
$_SESSION['param']
作为变量传递。因此在
page.php
中:然后在
my_progress_bar.js
中:06odsfpq4#
可以使用JSON将会话变量从php脚本传递到JQUERY,例如
联森:
PHP语言
0x6upsns5#
你不能在JS中访问PHP会话变量/值,一个是服务器端(PHP),另一个是客户端(JS)。
你可以做的是通过 AJAX 调用将SESSION值 pass 或 return 到你的JS中,在你的JS中,调用一个PHP脚本,这个脚本简单地将SESSION变量的值输出返回到你的JS中,然后使用你的JS来处理这个返回的信息。
或者将值存储在COOKIE中,可以通过任何一个框架访问COOKIE,尽管这可能不是您的情况下的最佳方法。
或者你可以在PHP中生成一些JS来返回/设置变量,例如:
yrdbyhpb6#
严格地说,这不是使用jQuery,但我发现这个方法比使用jQuery更容易。这里可能有无数的方法可以实现这一点,也有许多聪明的方法,但并不是所有的方法都对我有效。然而,下面的方法一直有效,我传递给它一个,以防它对其他人有帮助。
需要三个javascript库,
createCookie
,readCookie
和eraseCookie
。这些库不是我的,但我大约5年前开始使用它们,不知道它们的起源。要调用它们,您需要创建一个小型PHP函数,通常作为支持库的一部分,如下所示:
因此,要使用index.php文件中必须包含的所有内容,请
现在,在您的javascript library.js中,您可以使用以下代码恢复cookie:
希望这能帮上忙。
fwzugrvs7#
奇怪的是,直接从$_SESSION导入不起作用,但必须这样做才能使其工作:
和
to.js
中