表单坚持GET而非POST / Codeigniter 4

9fkzdhlc  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(115)

我搞不清楚是怎么回事。我正在测试一个表单是否被这个代码提交;

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

我有一个表格,请参阅下面的表格,我正在使用Codeigniter 4;

<!-- 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 -->

由于某种原因,当我选择提交按钮并回显时
它写的是'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">
uz75evzq

uz75evzq1#

更改按钮并使用<button type="submit" class="btn btn-primary">Save</button>
此外,正如前面的用户所说,检查HTML中是否存在method="post"
最后,您可以使用$_SERVER['REQUEST_METHOD']而不是getMethod()并发布结果吗?

af7jpaap

af7jpaap2#

尝试按钮:

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

控制器:

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

46qrfjad3#

我也面临着和你一样的问题,$request-〉getMethod()说的是“GET”,而它应该是“POST”。
下面的代码对我很有效。它返回控制器上的“post”方法。

检视:

> <?php echo form_open(base_url('/admin/post/post_update')  ,
> array('class' => 'form-horizontal form-groups-bordered validate',
> 'enctype' => 'multipart/form-data', 'method' => 'post' ));?>

控制器:

public function post($param1 = NULL) { if($param1 == 'post_update') { $resp = $this->request->getMethod(true); return redirect()->to('/admin/post/'. $resp );}}

如何测试getMethod(). redirect url会显示:
网站名称:

相关问题