【问题标题】:Use a PHP variable in JQuery在 JQuery 中使用 PHP 变量
【发布时间】:2012-05-19 19:38:33
【问题描述】:

无论如何我可以在 JQuery 脚本中使用 php 变量吗?

例子:

  • PHP 变量:$sr2
  • JQuery 脚本摘录(带变量):$('#a2_bottom_$sr2')

如何使变量在该 JQuery 部分中有效?

谢谢

【问题讨论】:

  • 您的 jQuery 代码在哪里?在 PHP 文件中还是在单独的 .js 文件中?
  • 它与 PHP 位于同一个文件中

标签: php jquery


【解决方案1】:

PHP 运行在服务器上,jquery 运行在客户端。如果您希望 PHP 变量可用于 jquery(以及扩展,底层 javascript 引擎),您必须在服务器上输出页面时发送变量的值,例如

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

或通过 AJAX 调用检索值,这意味着您基本上是在创建 Web 服务。

【讨论】:

  • +1 用于 json_encode;我认为如果我们要讨论将变量打印为 JS 代码,那么我们讨论如何避免破坏它是至关重要的 :)
【解决方案2】:

您可以简单地使用 PHP 来回显代码以启动 JavaScript 变量。

<script type="text/javascript">
<?php

  $phpVar = "foo";
  echo "var phpVariable = '{$phpVar}';";

?>
</script>

一旦 PHP 代码被解析,并且 HTML 被发送给用户 - 他们将看到的只是 PHP 回显的结果 -

<script type="text/javascript">
  var phpVariable = 'foo';
</script>

现在您的 phpVariable 可用于您的 JavaScript!因此,您可以像在任何其他情况下一样使用它 -

$("div."+phpVariable);

这将检索我们任何带有foo 类的&lt;div&gt; 元素-

<div class="foo"></div>

【讨论】:

  • 它真的很旧,但现在我的代码中出现了 javascript 错误 "Uncaught SyntaxError: Unexpected token
  • @IrtzaShahan - 这意味着将变量插入 javascript 时出错。确保你用引号包裹你的 php 变量,以便你在页面上回显的最终结果看起来像普通的 javascript。请记住,浏览器仍然需要读取和使用您创建的 javascript 值。
【解决方案3】:

假设你的 jQuery 在同一个文件中:

... $('#a2_bottom_<?php echo $sr2 ?>') ...

【讨论】:

  • 工作正常...除非$sr2 包含引号字符、空格等
  • 但是由于它是 ID 的一部分,所以无论如何它不能包含这些字符。
  • 完全正确;如果$sr2 变量包含这些字符中的任何一个,无论是偶然的,还是故意的黑客攻击,它都会使jQuery 代码行无效。至少,使用json_encode() 确保其语法有效,但在这种情况下,可能还需要进一步验证,例如去除空格等。
【解决方案4】:

您可以将其作为页面的一部分在脚本标签中输出...即

<script type="text/javascript">
<?php
echo "var sr2 = \"" . $sr2 . "\"";
?>
</script>

那么你的 jQuery 行就可以访问它了:

$('#a2_bottom_' + sr2)

【讨论】:

  • 为了安全起见,在将变量回显到 javascript 时使用json_encode(),但基本上这是正确的答案。
猜你喜欢
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多