【问题标题】:How to remove form after it's submitted in Laravel PHP?在 Laravel PHP 中提交后如何删除表单?
【发布时间】:2017-09-23 14:13:05
【问题描述】:

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

<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 容器。

【问题讨论】:

    标签: php forms laravel backend octobercms


    【解决方案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')];
    }
    

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

    【讨论】:

    • 谢谢!唯一需要改变的是 return ['#form' =&gt; $this-renderPartial('@partials/success')]; return ['#form' =&gt; $this-&gt;renderPartial('success')];
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      另一种选择是使用 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>
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-18
        • 1970-01-01
        • 2021-01-05
        • 2018-01-23
        • 1970-01-01
        • 2013-11-18
        • 2019-04-21
        • 2016-09-26
        相关资源
        最近更新 更多