0

フォーム投稿の動作でURLに少し問題があります。私のフォームはこんな感じ

<form action="../method" type="POST">
    <input type="submit" value="Submit">
</form>

私の方法は次のようになります

function method()
{
   $bool=dosomething();
   if($bool)
   {
      $this->redirect('mainpage');
   }
   else
   {
      $this->redirect('currentpage');
   }
}

$ bool値がfalseと評価された場合、ボタンを押すイベントで現在のページに移動したいと思います。しかし、現在のページに初めてアクセスしたときのURLは、たとえばhttp://localhost/dir/controllers/method、送信ボタンの上にマウスを置いたときです。ただし、上記の$ boolがfalseになると(2回目の再読み込み)、上記のボタンで実行されたURLはになりhttp://localhost/dir/methodます。

今何を修正する必要がありますか?

4

2 に答える 2

1

フォームを使用してリダイレクトしないでください。

次のように、自動ロードでurl_helperをアクティブ化できます。

autoload ['helper'] = array('url');

フォームを次のように置き換えます。

エコーアンカー('コントローラー/メソッド'、'マイテキスト'、'title = "myTitle"');

于 2012-05-22T14:28:16.453 に答える
0

ええ、Bronchaが言ったように:フォームタグのaction属性が間違っています。「../」は親ディレクトリを意味するので、「1つ上のレベルに移動」します。

フォームの作成にはCakesFormHelperを使用するだけです:http:
//book.cakephp.org/2.0/en/core-libraries/helpers/form.html

またはurl()-Cakes HtmlHelperのメソッド:http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::
url

于 2012-05-22T06:28:22.983 に答える