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

时间:2017-04-26 09:07:49

标签: php forms laravel backend octobercms

我的网站使用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容器。

3 个答案:

答案 0 :(得分:1)

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

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

然后你可以隐藏表单并通过返回要在div中呈现的新部分来显示ajax处理程序的结果:

public function onSend()
{
    # save the data

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

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

答案 1 :(得分:0)

只需添加一个标志并检查它是否使用@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>

答案 2 :(得分:0)

另一个选项是使用ajax在表单的div中发送结果 with: data-request-update =&#34;&#39; form-result&#39; :&#39;#yourdiv&#39;&#34;

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

通过这样做,表单将替换为您的成功消息。如果输入错误,表格将保留在原位。