如何在 Laravel PHP 中提交表单后将其删除?

How to remove form after it's submitted in Laravel PHP?

我的网站使用 OctoberCMS,我有一个联系表单,我想在其中部分显示成功消息并在提交后隐藏该表单。这是表单的代码片段,我清除了其中不必要的部分:

<form role="form" class="cntct" id="cntct" data-request="onSend" data-request-update="success: '#result'">
     <div class="form-group">
      <!-- Some input fields here !--> 
         <div class="row">
            <div class="col-sm-6">
               <button type="submit" class="btn btn-lg btn-info">Send message</button>
            </div>
          </div>
     </div>
 </form>
 <div id="result">
   {% partial 'success' %}
 </div>

表单正在运行,我可以发送电子邮件并且 success 部分显示其内容而没有任何错误。我只想删除表单,如果可以使用 PHP,并仅显示 #result 容器。

只需添加一个标志并检查它是否使用@if 或@isset 设置。

@isset($flag) // or @if
   <form role="form" class="cntct" id="cntct" data-request="onSend" data-request-update="success: '#result'">
     <div class="form-group">
      <!-- Some input fields here !--> 
         <div class="row">
            <div class="col-sm-6">
               <button type="submit" class="btn btn-lg btn-info">Send message</button>
            </div>
          </div>
     </div>
 </form>
@endisset
<div id="result">
   {% partial 'success' %}
 </div>

另一种选择是将结果发送到带有 ajax 的 div 表格中 使用:data-request-update="'form-result' : '#yourdiv'""

<div id="contactForm">
<form role="form" data-request="onContactFormSubmit" data-request-update="'form-result' : '#contactForm'" data-request-validate="" _lpchecked="1">
...
</form>
</div>

执行此操作后,该表单将被您的成功消息所取代。如果输入错误,表格将保留在原位。

如果您将表单部分放在带有 id="form" 的 div 中,如下所示:

<div id="form">
    {% partial __SELF__~"::partials/form" %}
</div>

然后您可以隐藏表单并显示来自 ajax 处理程序的结果,方法是返回要在 div 中呈现的新部分:

public function onSend()
{
    # save the data

    return ['#form' => $this-renderPartial('@partials/success')];
}

这假设您的组件部分文件夹中有 formsuccess 部分。