【发布时间】:2018-12-03 12:50:03
【问题描述】:
我正在使用带有连接 pdo 的 php oop。 我需要帮助如何通过 ajax 从类中调用函数
例如,假设我想通过 ajax 调用 printBooks
-
类 - 实体书:
class Book{ private $id; public function setID(); public function getID(); public function setName(); public function getName(); } -
类 - 控制器书籍:
class book_controller{ private $books; private $conn; public function __construct() { $database = new Database(); $db = $database->dbConnection(); $this->conn = $db; } public function getAllBooks(){ $stmt = $conn->query("SELECT * FROM books"); $stmt->execute(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $b = new book(); $b->setID($row['id']); $b->setName($row['name']); $this->books[] = $b; } } public function printBooks(){ for($i=0; $i<sizeof($this->books);$i++){ echo $this->books[$i]->getName(); } } -
索引文件
<?php $bo = new book_controller(); echo "<button id='callToprintBooks'>"; ?> -
ajax 调用
$.ajax({ url:book_controller.php, type: 'POST', success : function( data ) { $('#DescModal').html(data); $('#DescModal').modal("show"); } });
为简单起见,在创建新的 book_controller 实例后,我想通过 index.php 文件中的 ajax 单击按钮调用 printBooks 函数。 我试图在会话中保存 var "$bo" 但出现错误
您不能在
中序列化或反序列化 PDO 实例
我尝试使用 $_GET 调用,但我不想创建新实例(因为我需要再次构建 book 数组)
我希望我已经能够解释自己,以便您可以帮助我
【问题讨论】:
-
getAllBooks是完全无效的代码 -
对,我写的是一个例子。我已经更新了函数
-
您希望如何显示书籍以及如何获取它们?通过 AJAX?
-
我想在按钮点击时打开一个模式。这是我的 ajax 代码: $.ajax({ url:book_controller.php, type: 'POST', success : function( data ) { $('#DescModal').html(data); $('#DescModal') .modal("show"); } });正如我所说,我不知道如何调用函数 printBook()。我尝试设置 url: book_controller.php?sendprint=1 并通过 $_GET['sendprint'] 调用该函数,但后来我回到起点,需要创建 book_controller 的新实例