将PHP变量传递给.js文件(jQuery)


Pass PHP variable to .js file (jQuery)

假设我在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-file中:

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

如何将$PHP_variable传递到js文件?我宁愿不使用js代码直接对php脚本(我知道如何解决它的方式)。

听起来您正在考虑使用PHP生成Javascript,这是可能的,尽管它有点奇怪。同样奇怪的是,你真的没有传递变量,你使用它来渲染相同值的javascript变量。

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

这可以有很多方法,但因为它看起来像你在使用jQuery,它只是:

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

你就快到了-

$('#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>

感谢所有的答案,我选择使用一个带有id和php变量的隐藏输入字段作为这个输入的值,然后在js文件中,我简单地从这个隐藏的输入

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