将类中定义的php对象获取到单独文件中的javascript

时间:2016-03-29 22:16:02

标签: javascript php mysql

我没有做过很多网络开发,前言。我有一个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,我可以理解,但我不知道如何使它等待或任何替代。提前谢谢!

1 个答案:

答案 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;