[英]Get php object defined in class to javascript in separate file
作为序言,我没有做太多的Web开发工作。 我有一个methodExec.php
文件和一个main.js
文件。 在我的PHP文件中,我正在创建一个包含来自数据库的行的列表,并且试图在我的.js文件中使用该列表。 如果我在类外声明了数组,则可以访问它,但是我不确定在收集数据库中的行后如何引用它。
methodExec.php
<?php
require_once 'includes/constants.php';
$methodExecVar = new methodExec();
class methodExec {
private $conn;
public $timesList;
function __construct(){
$this->conn = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD, DB_TIMES) or
die('There was a problem with the database connection.');
}
function getTimes(){
$timesList = [];
$query = "SELECT *
FROM times";
$result = $this->conn->query($query);
while ($row = $result->fetch_assoc()) {
$timesList[] = $row;
}
$this->conn->close();
return $timesList;
}
}
?>
<script type="text/javascript">var jsArray = <?php echo json_encode($methodExecVar->timesList); ?>;</script>
<script type="text/javascript" src="js/main.js"></script>
main.js仅包含alert(jsArray)
。 在这种情况下,它返回null,我可以理解,但是我不确定如何使其等待或有其他选择。 提前致谢!
它可能为null
因为在初始化jsArray之前,浏览器将main.js文件加载到内存中。 这可能导致jsArray为空,因为在时间调用中不存在。
您想使用jsArray变量调用的函数可以包装javascript函数setTimeout() 。 尝试将其设置为200-300ms,应该没问题。 一切初始化之后,将调用您的函数。
它的原理与jQuery库中的jQuery.ready()函数相似。 它说
“仅当jQuery处于就绪状态时才运行代码。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.