0

我正在从数据库中获取一些信息并使用json_encode(). 行: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

4 回答 4

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>

更多关于 JS 函数的信息

于 2013-04-04T12:52:51.340 回答
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 中访问它。但是,如果您有很多其他变量,最好将其添加到命名空间。

于 2013-04-04T12:53:10.343 回答
1

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

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

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

<script type="text/javascript">
myFunction(<?php echo $month_stats ?>);
</script>
于 2013-04-04T12:53:44.993 回答
0

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

于 2013-04-04T12:52:39.067 回答