如何在 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')];
}
这假设您的组件部分文件夹中有 form
和 success
部分。
我的网站使用 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')];
}
这假设您的组件部分文件夹中有 form
和 success
部分。