我没有做过很多网络开发,前言。我有一个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,我可以理解,但我不知道如何使它等待或任何替代。提前谢谢!
答案 0 :(得分:1)
它可能是<div class="container">
<div class="content">
Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br>
</div>
<div class="footer">
Footer
</div>
</div>
<hr />
<div class="container">
<div class="content">
Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br> Content<br>
</div>
</div>
因为浏览器在之前初始化jsArray之前将main.js文件加载到内存中。它可能导致jsArray为空,因为在时间调用中不存在。
您想用jsArray变量调用的函数可以包装javascript函数setTimeout()。尝试将其设置为200-300ms应该没问题。 一切都被初始化后,它将调用你的函数。
它与jQuery库中的jQuery.ready()函数类似。它说'
&#34;仅在jQuery处于准备状态时运行代码。&#34;