未发送表格 - laravel

Form is not being sent - laravel

我正在尝试通过填写表格将公告添加到数据库中...

这是我的 HTML:

<div class="remodal" data-remodal-id="modal" data-remodal-options="closeOnOutsideClick: false">
<button data-remodal-action="close" class="remodal-close"></button>
<h1>Post a new Announcement</h1>
<hr />
    <form method="POST">
          <label><h4>Subject</h4>
            <input name="newsTitle" type="text" placeholder="Announcement title">
          </label>
          <label><h4>Body</h4>
            <textarea name="newsBody" placeholder="Write the announcement message here"></textarea>
          </label>
          <input type="hidden" name="_token" value="{{ csrf_token() }}">

          <br>
        <button data-remodal-action="cancel" class="remodal-cancel">Cancel</button>
        <button type="submit" name="newAnnPost" class="remodal-confirm">POST</button>
    </form>
</div>

这是我的路线: Route::post('/backend', 'BackendController@store');

这是后端控制器:

public function store(Request $request)
{
    if($request->has('newAnnPost')){
        $insertNews = new News;

        $insertNews->subject = $request->newsTitle;
        $insertNews->msg = $request->newsBody;
        $insertNews->author = Auth::user()->name;
        $insertNews->AuthorID = Auth::user()->id;

        $insertNews->save();

        return redirect('/backend');
    }
}

当我按下类型为 "submit" 的 POST 按钮时,页面变成空白,没有任何反应。

此外,表单是模态的,当我打开模态时,我得到 .../backend#modal 而不仅仅是 .../backend 这也可能是个问题吗?

action 属性添加到表单

<form method="POST" action="/backend">

并且在您的控制器中,return redirect('/backend') 将表单重定向回同一页面。

backend 创建获取路由或重定向到另一个 route

您忘记指定路线 到你的表格。添加以下内容:

<div class="remodal" data-remodal-id="modal" data-remodal-options="closeOnOutsideClick: false">
<button data-remodal-action="close" class="remodal-close"></button>
<h1>Post a new Announcement</h1>
<hr />
    <form method="POST" action="{{URL:to('/backend')}}">
          <label><h4>Subject</h4>
            <input name="newsTitle" type="text" placeholder="Announcement title">
          </label>
          <label><h4>Body</h4>
            <textarea name="newsBody" placeholder="Write the announcement message here"></textarea>
          </label>
          <input type="hidden" name="_token" value="{{ csrf_token() }}">

          <br>
        <button data-remodal-action="cancel" class="remodal-cancel">Cancel</button>
        <button type="submit" name="newAnnPost" class="remodal-confirm">POST</button>
    </form>
</div>

并重定向到控制器上的不同位置。

首先,我在表单标签中没有看到 action 属性,应该是这样的

<form method="POST" action="/backend">

此外,听起来您的 laravel 控制器不会处理您的请求,

$request->has('newAnnPost')

请求将不包含 newAnnPost 但它将包含其他 2 个输入标签而不是提交按钮,据我所知,它在提交表单时未序列化为表单输入