【问题标题】:Accessing codeigniter session variables inside javascript [closed]在javascript中访问codeigniter会话变量[关闭]
【发布时间】:2012-04-08 04:06:46
【问题描述】:

如何在 javascript 中访问 c​​odeigniter 会话变量?如果我在纯 php 中创建会话变量并在 javascript 中访问它,它会给我结果,但如果是 codeigniter 会话变量,它会给我语法错误。

我使用以下代码行访问我的 .js 文件中的 codeigniter 会话变量

var m1  = "<?php echo json_encode($this->session->userdata('max_age')); ?>";

【问题讨论】:

  • 这对我来说是正确的。有什么问题?
  • 下一行出现语法错误
  • 下一行出错?那么,下一行是什么?
  • 输出的 HTML 是什么样的(在浏览器中)。如果您的 PHP 输出周围没有引号并且输出为空,那么您将留下 var m1 = ;这会导致错误。
  • @RajneelJoshi 您需要向我们展示导致错误的所有代码,而不仅仅是您希望以某种方式工作的行。另外,translate.google.com 可能会有所帮助。

标签: php javascript codeigniter


【解决方案1】:

"我使用以下代码行访问 codeigniter 会话变量 我的 .js 文件 "


您不能将 PHP 代码放入 .js 文件中。它不会被解析。您必须将代码放在调用 .js 文件的 PHP 文件中。

例如:

<script type="text/javascript">
var m1  = <?php echo json_encode($this->session->userdata('max_age')); ?>; 
</script>
<script type="text/javascript" src="script.js"></script>

【讨论】:

    【解决方案2】:

    正如我在上面的 cmets 中提到的,问题很可能是由空的 php echo 输出引起的。您在上面说过,您的 echo 语句周围没有引号。所以在你的代码中它看起来像这样:

    var m1  = <?php echo json_encode($this->session->userdata('max_age')); ?>; 
    

    如果您的 php 变量 $this-&gt;session-&gt;userdata('max_age') 为空,这可能会出现问题。因为如果是这种情况, json_encode 将输出一个空字符串。请在您的浏览器中执行“查看源代码”并查看该行是否如下所示:

    var m1  = ;
    

    如果是这样,您就发现了问题。以上是无效的,会导致语法错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 2012-08-22
      • 2011-11-25
      • 2015-06-29
      相关资源
      最近更新 更多