0

「Registreer je」ボタンをクリックしたときに、Controller.php というクラスで関数登録者を呼び出すにはどうすればよいですか?`

これは私の Index.php ファイルの一部です。また、「require_once('Controller.php');」があります。

<form method="POST" action="<?php echo Controller::registreer()?>">
    <button type="submit" class="btn btn-primary">Registreer je</button>
</form>`

Controller.phpの私の関数:

public static function registreer(){
        header("Location:registreer.php");
        exit();
    }
4

2 に答える 2

1

「ルートを呼び出すだけ」と言いたいのですが、あなたのデザインには実際にはルートがないようです...しかし、それについては後で説明します。

だから今のところ、あなたはしなければならない

  1. スクリプトを再度呼び出し、サイトが呼び出されたメソッドが POST であるかどうかを確認してから、Controller メソッドを呼び出します
  2. 2 番目のスクリプトを作成します。registreer.phpこれは、フォームの送信時に呼び出される可能性があり、Controller メソッドを呼び出す場所で呼び出されます。

Controller::registreer()基本的にメソッドを呼び出し、そこから返された結果 (存在する場合、この場合は存在しない) をタグのaction属性に挿入しているため、上記の例は機能しません。<form>

実際にフォームの送信時にファイルを呼び出す必要がある場合は、それを属性registreer.phpに書き込むだけです。action


とにかく、それはあまり良い設計ではありません。コードにある種のコントローラーを含めるという事実により、定義したメソッドを呼び出すルートを実際に作成するのがベスト プラクティスです。

このチュートリアルを見て、MVC が実際に何であるかについての手がかりを得てください。

その後、数多くの MVC フレームワークのいずれかを使用することをお勧めします。

私のお気に入りの2つは

アイデアがあり、さらに深く知りたい場合は、次のような「より大きな」フレームワークを見てください。

これらは、世の中にある多くのフレームワークの 5 つの例にすぎません。行き、1つをつかみます。

于 2013-10-22T14:48:31.380 に答える
0

パスが指定されたときにアクションがデフォルトで行うリダイレクト ヘッダーの送信以外は実際には何も実行していないため、コントローラーからパスを取得するだけのほうがよいでしょう。

また、リダイレクトすることはできませんecho。エコーする文字列がないため、エラーが発生します。

パスがわかっている場合は、手動で (または変数を介して動的に) 設定します。パスが動的な場合は、オブジェクト自体のゲッターとセッターを介して取得します。

于 2013-10-22T14:48:13.697 に答える