4

jQuery Mobile アプリケーションの Code Igniter ビューにフォームがあります。

<form action="<?= BASE_PAGE_URL ?>settings" method="post" id="settingsForm">
    <div data-role="fieldcontain">
        <label for="firstName">First Name</label>
        <input type="text" name="firstName" id="firstName" value="" placeholder="First Name" />
    </div>
    <div data-role="fieldcontain">
        <label for="lastName">Last Name</label>
        <input type="text" name="lastName" id="lastName" value="" placeholder="Last Name" />
    </div>
    <input type="hidden" name="purpose" value="register" />
    <input type="submit" name="submit" value="Register" />
</form>

ただし、このコードをアクションで指定された URL につながるコントローラー メソッドに書き込むと、次のようになります。

echo ($_SERVER['REQUEST_METHOD'] == 'POST') ? "yay" : "nay";

送信ボタンを押すと、ページに「いや」と書かれています。Code Igniter が投稿リクエストを送信していることを認識できないのはなぜですか?

4

3 に答える 3

2

の原因となりregister_globalsます。使用する

if($_POST) 

または CI 入力クラス

$this->input->post('var');
于 2012-04-04T05:42:01.583 に答える
2

POST データがあるかどうか、またはリクエストが POST であったかどうかを判断する場合は、入力クラスpost()のメソッドを使用します

$this->input->post(index);

//returns FALSE if no POST data
//returns the POST array if there is data (hence, a POST)
//returns a specific data from the array if you provide "index"
于 2012-04-04T05:37:58.237 に答える
1

フォームが期待どおりに投稿リクエストを返しているのだろうかと思いますが、その後すぐに何かがリダイレクトされ、GET として表示されますか? フォーム処理アクションに一時的なexit()ものをすぐに入れてみてください。POSTとして出てくると思います。

于 2012-04-04T06:04:08.923 に答える