将php变量传递给另一个文件中的javascript

时间:2016-12-12 00:26:59

标签: javascript php ajax

我遇到将php变量传递给javascript的问题。 它确实传递了在顶部声明的变量,但我不知道在IF语句完成后如何调用函数来获取新版本的变量。

$info = "A message";

if (true){

    $info = 'Message to be passed';


}

用于将php变量传递给javascript文件的脚本:

<script type='text/javascript'> 
var info = "<?php echo $info; ?>";
</script> 

我想知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

简单的方法(这需要两个文件都是PHP文件):

<?php

require_once "your_php_file_here.php"; // Change to your PHP file here

?>

<script type='text/javascript'>

var info = "<?php echo $info; ?>";
alert(info);

</script>

这只允许您在页面加载时获取值。如果您希望获取新值,则需要重新加载页面。

使用Ajax(在我看来)更好的方式(文件可以是HTML):

<script type='text/javascript'>

var info;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'your_php_file_here.php'); // Change to your PHP file here
xhr.onload = function() {
    if (xhr.status === 200) {
        info = xhr.responseText;
        alert(info);
    } else {
        alert('Request failed: ' + xhr.status);
    }
};
xhr.send();

</script>

这可以放在一个函数中,并根据需要调用多次。它可以获得新值而无需重新加载页面。

为此,您需要将PHP代码更改为:

$info = "A message";

if (true){

    $info = 'Message to be passed';

}

echo $info;

我没有添加对IE6及以下版本的支持,因为我认为这是我们停止支持多年前失去开发人员支持的浏览器的时候了。