将PHP整数传递给JavaScript

时间:2016-05-27 11:07:02

标签: javascript php

我一直在阅读这么多帖子,但似乎没有一个帖子适合我,我不知道我做错了什么。我想在JavaScript中调用PHP整数并将其设置为JavaScript变量,这样我就可以在计算中使用该变量。

average = '<?php echo $average; ?>';
console.log("value" + " " + average);

这是我一直使用的代码,它打印到控制台:

value <?php echo $average; ?>

这显然不是我想要的结果,我希望它能打印整数。 我的$ average PHP整数也位于不同的文件中,因此我使用了:

<?php include 'DBObject.php';?>

我希望能够进行如下计算:

drone1percentage = 1000 / average * 100;

但由于平均变量没有从我的其他文件中获取php整数$ average,所以它不起作用。

6 个答案:

答案 0 :(得分:1)

您可以将此添加到.htaccess中,因此PHP也会解释js文件。

<FilesMatch "\.(js)$">
AddHandler application/x-httpd-php .js
</FilesMatch>

或者将.js重命名为.php并在文件前面添加此标题:

header('Content-Type: application/javascript');

答案 1 :(得分:1)

你“无法”在javascript文件中执行php。

然而,从php获取变量有一些技巧。

其中一个是用php创建一个javascript变量,并在你的javascript文件中使用这个变量。

示例:

// Inside your php file

<script>

    var average = <?php echo $average; ?>

</script>

<script src="yourjavascriptfile.js"></script>

// Inside your javascript file

console.log(average);

答案 2 :(得分:1)

使用jQuery.ajax - http://api.jquery.com/jquery.ajax/

var average;
$(function(){
    $.get("path/to/script", function(data, status){
        average = data;
    });
});

答案 3 :(得分:0)

你的js文件必须以.php结尾,例如*:focus, *:visited, *:active, *:hover { outline:0 !important;} *::-moz-focus-inner {border:0;} 才能解析php代码。

虽然你不能把php代码放到.js文件中,你可以从php创建一个js文件

您还可以设置Web服务器以将所有.js文件解析为php代码,但这可能有点太多了。

答案 4 :(得分:0)

试试这个:

average = parseInt('<?php echo $average; ?>');

答案 5 :(得分:0)

对我来说,从PHP获取信息到javaScript的最可靠方法是使用jQuerys ajax功能。

所以,如果你有像

这样的东西

<强> yourPHPFile.php

<?php
if($_POST['action'] == 'getAverage') {
    echo returnAverage();
    die;
}

function returnAverage() {
    //your average calculation here

    return $average
}

您可以执行类似

的操作

<强> yourJavaScriptFile.js

var average = null;

$.ajax({
    method: 'POST',
    url: '/path/to/yourPHPFile.php',
    data: {action: 'getAverage'},
    success: function(response) {
        average = response;
    }
});

将它放在一个需要它的时候触发的函数中。

为此,您需要包含jQuery。有关jQuery.ajax()功能的更多信息,请参阅The Documentation

请注意,根据您使用的jQuery版本,某些ajax参数可能会有所不同。