繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM