从 PHP 获取变量到 JavaScript

IT技术 php javascript
2021-01-23 16:41:21

我想在 JavaScript 中使用 PHP 变量。这怎么可能?

6个回答

您可以在创建页面时将 PHP 变量打印到您的 javascript 中。

<script type="text/javascript">
    var MyJSStringVar = "<?php Print($MyPHPStringVar); ?>";
    var MyJSNumVar = <?php Print($MyPHPNumVar); ?>;
</script>

当然,这是针对简单变量而不是对象。

并且您可能想要进行一些完整性检查,在输出之前确保 PHP 变量是您想要的,否则您将遇到一些滑稽的 Javascript 错误。另外不要忘记清理,确保变量不包含“,你需要对它进行 HTMLEncode 或使用 JSON。
2021-03-29 16:41:21

您可以通过使用 PHP 生成 PHP 变量来将 PHP 变量传递给您的 JavaScript:

<?php
$someVar = 1;
?>

<script type="text/javascript">
    var javaScriptVar = "<?php echo $someVar; ?>";
</script>
经过几个小时的搜索解决了我的问题 - 谢谢!
2021-03-23 16:41:21
@Garavani 听起来您的服务器上可能没有安装 PHP?
2021-03-25 16:41:21
听起来很好很简单,但就我而言,alert 或 consoleLog 的结果是这样的: <?php echo $my_php_var; ?> 而不是变量的值 :-(
2021-04-02 16:41:21
非常适合我的需求。谢谢卡斯腾!
2021-04-13 16:41:21

这取决于您想在 Javascript 中使用什么类型的 PHP 变量。例如,带有类方法的整个 PHP 对象不能在 Javascript 中使用。但是,您可以使用内置的 PHP JSON(JavaScript Object Notation)函数将简单的 PHP 变量转换为 JSON 表示。欲了解更多信息,请阅读以下链接:

您可以生成 PHP 变量的 JSON 表示,然后在页面加载时将其打印到您的 Javascript 代码中。例如:

<script type="text/javascript">
  var foo = <?php echo json_encode($bar); ?>;
</script>

我认为最简单的方法是在您的网页中包含jQuery javascript 库,然后使用JSON作为格式在两者之间传递数据。

在您的 HTML 页面中,您可以像这样从 PHP 脚本请求数据:

$.getJSON('http://foo/bar.php', {'num1': 12, 'num2': 27}, function(e) {
    alert('Result from PHP: ' + e.result);
});

在 bar.php 你可以这样做:

$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
echo json_encode(array("result" => $num1 * $num2));

这就是通常所说的 AJAX,它有助于为网页提供更动态和更像桌面的感觉(您不必刷新整个页面即可与 PHP 通信)。

其他技术更简单。正如其他人所建议的,您可以简单地从 PHP 脚本生成变量数据:

$foo = 123;
echo "<script type=\"text/javascript\">\n";
echo "var foo = ${foo};\n";
echo "alert('value is:' + foo);\n";
echo "</script>\n";

现在大多数网页都使用两者的组合。

你说得对。一个只包装 xml-http 对话的轻量级库会很整洁。
2021-03-19 16:41:21
是的,我明白你的意思——也许他可以试着解释更多他想要的东西。
2021-03-25 16:41:21
我不确定包含整个库以使用 JSON 函数是最好的方法。对于该特定任务,jQuery 有很多替代方案。
2021-04-04 16:41:21
我想你只是把他弄糊涂了。我认为他并没有期待这么复杂的事情。
2021-04-10 16:41:21
<?php 
$j=1;
?>
<script>
var i = "<?php echo $j; ?>";
//Do something
</script>
<?php
echo $j;
?>

这是在没有 Ajax 的情况下将 php 变量传递给 javascript 的最简单方法。

你也可以使用这样的东西:

var i = "<?php echo json_encode($j); ?>";

据说这更安全或更安全。我认为