在javascript中打印哈希表会话变量
print hashtable session variable in javascript
有人知道如何从javascript访问哈希表会话变量吗?我可以在perl中创建一个,然后像这样打印出来:
my $session = new CGI::Session(undef, undef, {Directory=>'/tmp'});
$session->param("controllerHash", '%controllerHash);
my $hash_ref = $session->param('controllerHash');
print Dumper $hash_ref;
但是我不知道如何从javascript访问它。我尝试这样做:
function billingViewControllerChanged() {
var controllerHash = Session['controllerHash'];
for (var k in controllerHash) {
console.log('key: '+k +', value: ' +controllerHash[k]);
}
}
但是我在firefox控制台看到了这个:
ReferenceError: Session is not defined
任何想法?
最简单的方法是用JSON序列化Perl数据结构,JavaScript可以本地解析JSON。
use JSON;
my $session = new CGI::Session(undef, undef, {Directory=>'/tmp'});
$session->param("controllerHash", '%controllerHash);
my $hash_ref = $session->param('controllerHash');
my $controllerHashJSON = JSON->new->encode( $hash_ref );
print <<"__EOF__"; # in CGI, STDOUT is output to the client
function billingViewControllerChanged() {
var controllerHash = $controllerHashJSON;
for (var k in controllerHash) {
console.log('key: '+k +', value: ' +controllerHash[k]);
}
}
EOF
你不能从这里到那里。
服务器端代码运行在服务器端,javascript运行在浏览器端。
如果你需要访问服务器端会话数据,你需要把它包含在你的网页块,或提供一个URL与CGI脚本返回它的形式,javascript可以使用
相关文章:
- 将会话变量从一个页面传递到另一个页面
- 如何使用 php 会话变量作为 Angular Js 数据
- 通过Javascript更改PHP会话变量
- 正在Javascript响应中设置会话变量
- 将会话变量与javascript变量进行比较
- 我在会话变量中传递了一个数组.我需要将关键笔划传递给它以返回值
- 无法获取php会话变量以在javascript中设置var
- 使用Jquery在页面加载上测试php会话变量
- 移动浏览器没有;t支持会话变量
- 如果JS会话变量为null,如何避免500内部服务器错误
- 带有 Meteor 的通用会话变量键模板助手
- 使用 Javascript 或 jQuery 检索会话变量的简单快捷的方法
- 设置会话变量并从Jquery更改页面
- Meteor会话变量未存储数组
- PHP未通过javascript代码访问会话变量集
- 调用外部JavaScript文件中的会话变量
- 用户使用会话变量登录
- 通过AJAX将会话变量传递到PHP文件
- 更新图像切换上的php会话变量
- 为什么php页面刷新发布会话变量