表单坚持 GET 而不是 POST / Codeigniter 4

时间:2021-05-24 08:30:13

标签: codeigniter codeigniter-4

我无法弄清楚发生了什么。我正在测试这个代码是否提交了表单;

if ($this->request->getMethod() === 'post') 
{
}

我在下面有一个表格并且正在使用 Codeigniter4;

        <!-- show the form -->
        <?php
        $form = array(
        'class'       => 'form-control border-0',
        );
        ?>
        
        <?= form_open('Admin/post/post_update', $form); ?>
            
            <?= $this->include('Admin/Post/_post_form.php') ?>
            
            <!-- show buttons -->
            <div class="form-group">
                <button class="btn btn-primary">Save</button> 
            </div>
                
        </form>
        <!-- end form here -->

出于某种原因,当我选择提交按钮并回显时
echo $this->request->getMethod(); 它说 'get'。我期待阅读'post'

我阅读了文档,但看不到任何可以声明提交帖子而不是获取的地方。

当我查看 html 时,它看起来是正确的,但如下所示;

 <form action="https://development.example.com/Admin/post/post_create" class="form-control&#x20;border-0" method="post" accept-charset="utf-8">

2 个答案:

答案 0 :(得分:0)

更改按钮并使用 <button type="submit" class="btn btn-primary">Save</button>

另外,正如前一个用户所说,检查 method="post" 是否存在于 HTML 中。

最后,您可以使用 $_SERVER['REQUEST_METHOD'] 代替 getMethod() 并发布结果吗?

答案 1 :(得分:0)

尝试按钮:

<input type="submit" class="btn btn-primary" name="submit" value="Save">

控制器:

if (isset($_POST['submit'])) {}