【问题标题】:How to retrieve $_SESSION value in a JavaScript/HTML如何在 JavaScript/HTML 中检索 $_SESSION 值
【发布时间】:2014-08-20 03:56:52
【问题描述】:

我有这个工作脚本,但是当我将其更改为检索(假设)$_SESSION["username"] 中的值时,它不会检索任何内容。整个页面保存为 .php,因为我正在使用一些使用 PHP 的代码。

代码:

echo "<script type=text/javascript>";
echo "var hidden = false;";

echo "function actiondb1() {";
echo "if(!hidden) {";
echo "document.getElementById(\'clickdb1\').style.visibility = \'hidden\';";
echo "document.getElementById(\'db1\').style.visibility = \'visible\';"; 
echo "document.getElementById(\'db1\').disabled = false;";
echo "document.getElementById(\'db1\').value =".$_SESSION["username"];.";";

echo "}";
echo "}";
echo "</script>";

如何使脚本正确检索$_SESSION["username"]; 中的数据?

【问题讨论】:

    标签: javascript php html session


    【解决方案1】:

    请注意,例如,如果$_SESSION["username"] 的值为John,您的echo 将生成此结果:

    document.getElementById('db1').value = John;
    

    但 John 应该是一个字符串,应该用引号括起来,否则 JavaScript 会将其理解为变量名(其值可能是 undefined)。

    【讨论】:

      【解决方案2】:

      作为Havenard mentioned,此行缺少 Javascript 单引号以正确表示字符串变量:

      echo "document.getElementById(\'db1\').value ='".$_SESSION["username"];."';";
      

      但是,如果您能提供帮助,您真的不应该使用 PHP 打印 JS。虽然iatboy's answer 回答最终不会修复您的错误,但它是一种更清洁的做事方式。

      ?>
      <script type=text/javascript>;
      var hidden = false;
      function actiondb1() {
        if(!hidden) {
            document.getElementById('clickdb1').style.visibility = 'hidden';
            document.getElementById('db1').style.visibility = 'visible'; 
            document.getElementById('db1').disabled = false;
            document.getElementById('db1').value ='<?php echo $_SESSION["username"];?>';
          }
      }
      </script>;
      <?php
      

      【讨论】:

      • 在此序列之前关闭php标签并在代码块工作后再次打开它的想法,谢谢!
      • 欢迎您!您还可以查看heredoc PHP 语法。
      【解决方案3】:

      您是否在此页面中开始会话?如果没有,请使用以下代码开始会话。

          session_start();
      

      然后将代码更改为

      echo "<script type=text/javascript>";
      echo "var hidden = false;\n";
      echo "function actiondb1() {\n";
      echo "alert('".$_SESSION['username']."')\n";  //test code
      echo "if(!hidden) {\n";
      echo "document.getElementById('clickdb1').style.visibility = 'hidden';\n";
      echo "document.getElementById('db1').style.visibility = 'visible';\n"; 
      echo "document.getElementById('db1').disabled = false;\n";
      echo "document.getElementById('db1').value ='".$_SESSION["username"]."';\n";
      echo "}\n";
      echo "}\n";
      echo "</script>";
      

      会好的。

      【讨论】:

        猜你喜欢
        • 2013-12-29
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 2018-01-06
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        • 2012-07-28
        相关资源
        最近更新 更多