【问题标题】:Using a PHP variable inside JavaScript在 JavaScript 中使用 PHP 变量
【发布时间】:2014-08-01 06:21:16
【问题描述】:

我很新,所以放轻松。我在 PHP 中使用带有一些变量的会话。单击按钮时,我想将我的 PHP 会话中的两个字符串连接在一起。我正在使用 JavaScript onclick 来尝试实现这一点。

我无法让我的 JavaScript 接受我的 PHP 变量。有人有什么建议吗?

PHP:

$_SESSION['user1'] = $_POST['user'];
$_SESSION['string3'] = $_POST['string1'];
$_SESSION['string4'] = $_POST['string2'];

echo $_SESSION['user1'];
echo $_SESSION['string3'];
echo $_SESSION['string4'];

if(isset($_SESSION['user1'])) {
    echo 'Welcome, '.$_SESSION['user1'].". Lets concatenate ".$_SESSION['string3']." and ".$_SESSION['string4'];

} else {
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=">";
}


<button onclick="xy()">Try it</button>
<p id="answer"></p>

JS:

<script type="text/javascript">
function xy() {
    var x = "<?php $_SESSION['string3']; ?>";
    var y = "<?php $_SESSION['string4']; ?>";
    document.getElementById("answer").innerHTML = x + y;
}
</script>

【问题讨论】:

  • js在什么文件里?
  • 来源对您的 php 页面的评价是什么?
  • 这些都在同一个 .php 文件中
  • echo "&lt;meta http-equiv=\"refresh\" content=\"0;URL="&gt;"; 有一个未转义的引号。
  • 是的,脚本在php下面

标签: javascript php session session-variables


【解决方案1】:

您需要在此处回显 PHP 变量,否则它们不会输出任何内容,并且 JS 变量最终为空:

var x = "<?php echo $_SESSION['string3']; ?>";
var y = "<?php echo $_SESSION['string4']; ?>";

例如,如果$_SESSION['string3'] 是“abc”,PHP 将在 JS 中回显该值,您将得到:

var x = "abc";

代替:

var x = ""; // no output from PHP when there's no echo

为了简化,这里是你的全部功能:

<script type="text/javascript">
function xy() {
    var x = "<?php echo $_SESSION['string3']; ?>";
    var y = "<?php echo $_SESSION['string4']; ?>";
    document.getElementById("answer").innerHTML = x + y;
}
</script>

【讨论】:

  • 啊,很遗憾,我发布完整答案的速度太慢了,所以我会扩展这个。等效行为有一个简写:&lt;?= $_SESSION['string3']; ?&gt;
  • @boxmein 我写了它,然后决定删除它,因为 OP 对这一切似乎很陌生,不想让他进一步混淆。但是,是的,值得一提,谢谢。 :)
  • 我应该在哪里回显 JS 函数 xy() 中的 PHP 变量?
  • 不,不,x 一次,y 一次,就是这样......从那里,JS '知道'新值,您不需要再次从 PHP 回显它们。我已经更新了我的答案,向您展示了整个功能。
  • @Shomz 我更新了如上所示的 JS 代码。当我单击按钮时没有任何反应。我还缺少其他东西吗?
【解决方案2】:

也许应该是这样的?

echo "<script type=\"text/javascript\">\n";
echo "function xy() {\n";
echo "var x = ".$_SESSION['string3']."\";\n";
echo "var y = ".$_SESSION['string4']."\";\n";
echo "document.getElementById(\"answer\").innerHTML = x + y;\n}";
echo "</script>";

【讨论】:

  • 你为什么要这样做?
  • @Shomz 以防万一页面完全由 PHP 生成。
猜你喜欢
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2017-10-05
  • 1970-01-01
  • 2013-01-19
  • 2018-01-30
  • 2011-12-12
  • 2012-01-23
相关资源
最近更新 更多