【问题标题】:Pass PHP variable to .js file (jQuery) [duplicate]将PHP变量传递给.js文件(jQuery)[重复]
【发布时间】:2014-07-05 10:22:57
【问题描述】:

假设我在 php 文件 (index.php) 中有一个变量:

$PHP_variable = "string";

我想将它传递给我的 JS 文件 (functions.js),该文件当前正在 php 文件中读取。这可能吗?

例如,我的 php 文件中有这个:

 <input type="text" name="textfield" value="'.$PHP_variable.'" />
 <input type="button" id="actionButton" />

在 js 文件中:

$('#actionButton').click(function(){
 alert(THE_PHP_VARIABLE);
});

如何将 $PHP_variable 传递给 js 文件?我不想直接在 php-script 上使用 js 代码(我知道如何解决它)。

【问题讨论】:

  • 你有一个 XSS 漏洞。
  • 提问前请使用a search engine
  • @SLaks 我知道,但数据不需要以任何方式保护。
  • @user2994294:除非您的整个站点没有任何远程敏感信息,否则 XSS 漏洞仍然是一个大问题。
  • 如果您对答案感到满意,请竖起大拇指! :P

标签: php jquery variables


【解决方案1】:

听起来您正在考虑使用 PHP 生成 Javascript,虽然有点奇怪,但这是可能的。也很奇怪,您实际上并没有传递变量,而是使用它来呈现相同值的 javascript 变量。

相反,我认为您真正想要做的是使用 JS 从 HTML 元素的 value 属性中读取变量,因为您已经在其中存储了变量的值。

这可以通过多种方式完成,但由于看起来您使用的是 jQuery,所以它只是:

$('#actionButton').click(function(){
  $value = $this.attr('value');
  alert($value);
});

【讨论】:

  • #actionButton 没有属性“值”。当您遇到错误时: $this 将不起作用,您的意思可能是 $(this)
【解决方案2】:

你就快到了 -

$('#actionButton').click(function(){
    var THE_PHP_VARIABLE = $('input[name="textfield"]').val();
    alert(THE_PHP_VARIABLE);
});

由于在页面加载时会回显该值,因此您可以通过在正确的元素上使用 val() 轻松获得该值。

如果您想在页面加载时分配变量,您也可以在您的 PHP 中执行此操作 -

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

【讨论】:

    【解决方案3】:

    感谢所有答案,我选择使用带有 id 和 php 变量的隐藏输入字段作为此输入的值,然后在 js 文件中我只需从该隐藏输入中获取 val()

    $input_val = $('#hiddenInputID').val();
    

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      相关资源
      最近更新 更多