2017-07-08 92 views
1

PHPでOOPについて学び始めたばかりなので、明白に指摘してください。私のクラスbooksには2つのパブリック関数が含まれています.1つはリクエスト帳票フォームを表示し、もう1つは自分のデータベースにブックの詳細を送信します。ユーザーがrequest bookまたはsubmit formボタンをクリックしたときに、これらの関数を呼び出すために2つのifステートメントを使用します。ここでPHPオブジェクトが関数内で関数を呼び出せない場合

は私のクラスである:

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文全体でオブジェクトのスコープが同じであると思ったので少し混乱しています。私は間違いを指摘してくれた人に本当に感謝しています。乾杯。

あなたが $bookの両方例が何であるかを定義し、その最初の 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(); 
} 

答えて

6

$book = new Book(); 
if ($request) $book->Display(); 
if ($submit) $book->SendToDatabase(); 
関連する問題