请指出显而易见的,因为我刚刚开始学习PHP中的OOP。我的班级books
包含两个公共功能:一个用于显示请求书表单,另一个用于将书籍详细信息提交到我的数据库。当用户点击if
或request book
按钮时,我会使用两个submit form
语句来调用这些函数。
这是我的班级:
class Book
{
public $title;
public $author;
public $id;
public function SendToDatabase()
{
echo "inside SendToDatabase";
}
public function Display()
{
echo "<form action='' method='post'>
Title: <input type='text' name='title'><br>
Author: <input type='text' name='author'><br>
<input type='submit' name='submitBook' value='submit'>
</form>";
}
}
这是我使用按钮调用函数的代码(在同一个文件中)。因此,永远不会调用SendToDatabase()
函数。当我合并if
语句时,我能够使它工作,但是按钮将无法正常工作。我有点困惑,因为我认为对象的范围在if语句中是相同的。我真的很感激有人指出我的错误。欢呼声。
echo "<form action='' method='post'><input type='submit' name='submit' value='Request Book'></form>";
$request = $_POST['submit'];
$submit = $_POST['submitBook'];
if ($request) {
$book = new Book();
$book->Display();
}
if ($submit) {
$book->SendToDatabase();
}
答案 0 :(得分:6)
您需要定义两个案例中$book
的内容,因此请从第一个if
块中获取分配:
$book = new Book();
if ($request) $book->Display();
if ($submit) $book->SendToDatabase();