我从数据库中获取一些信息并使用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>
答案 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>
答案 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