传递PHP对象以在外部JS脚本中使用

时间:2013-04-04 12:48:54

标签: php javascript ajax

我从数据库中获取一些信息并使用json_encode()将其传递给某些JavaScript。行:var row_data = <?php echo $month_stats ?>;正在将对象转储到JS中。

但是现在我想把我的JS抽象成一个外部文件,所以突然我不能只将echo对象的内容放到JS中,因为PHP不会有任何存在。

所以我需要以某种方式(通过AJAX?)将PHP对象$month_stats直接发送给JS,以便它可以独立于PHP使用这些信息,但我不确定这是如何实现的。有什么指针吗?

<?php

include 'db.php';

$month_stats = generate_monthly_count_stats($conn);
?>

<!DOCTYPE html>
<html>
    <head>

    <script type="text/javascript">

    var row_data = <?php echo $month_stats ?>;
    console.log(row_data);

    </script>

    </head>

    <body>
    </body>
</html>

4 个答案:

答案 0 :(得分:1)

将JS放入外部文件时,请使用一个参数使其成为函数。

在.js文件中:

function logRowData(var1)
{
    console.log(var1);
}

在.php文件中:

<head>
<?php
    include(filename.js);
?>
</head>

要记录统计数据,您可以调用php文件。

<script type="text/javascript">
    logRowData($month_stats)
</script>

More info on JS Functions

答案 1 :(得分:1)

您可以简单地回显变量并在外部文件中访问它:

<script type="text/javascript">var row_data = <?php echo $month_stats ?>;</script>
<script type="text/javascript" src="external.js"></script>

row_data现在是一个全局变量,因此您可以在external.js中访问它。但是,如果你有很多其他变量,最好将它添加到命名空间中。

答案 2 :(得分:1)

您可以在.js文件中创建一些javascripn函数

myFunction(obj) {
    console.log(obj);
}

在你的php文件中你可以这样做:

<script type="text/javascript">
myFunction(<?php echo $month_stats ?>);
</script>

答案 3 :(得分:0)

如果您在包含的Javascript文件中引用变量row_data,它应该可以正常工作,因为您在全局范围内声明了这一点。这是一篇供参考的文章:http://snook.ca/archives/javascript/global_variable