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";

当我点击提交按钮时,“nay”被写入页面。为什么 Code Igniter 无法判断我正在提交发布请求?

4

3 回答 3

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 回答
2

这可能是register_globals. 采用

if($_POST) 

OR CI 输入类

$this->input->post('var');
于 2012-04-04T05:42:01.583 回答
1

我想知道您的表单是否按照您的预期返回了一个发布请求,但是之后会立即重定向某些内容,您将其视为 GET?exit()尝试立即在表单处理操作中放置一个临时的;我怀疑这会以 POST 的形式出现。

于 2012-04-04T06:04:08.923 回答