【问题标题】:Can I hide the form using javaScript when a PHP form has been submitted and the page refreshes?提交 PHP 表单并刷新页面后,我可以使用 javaScript 隐藏表单吗?
【发布时间】:2018-08-13 23:27:55
【问题描述】:

我有一个用 PHP 创建的表单,我一直在对其进行前端样式设置。提交表单后,页面刷新并显示一条消息。 消息显示在表单上方 - 但用户一旦提交就不能与表单交互 - 或者看到它!只需查看确认消息。 我不知道从哪里开始,也不知道为什么会这样。 有人可以向我发送正确的方向吗?

【问题讨论】:

  • 显示消息的逻辑与不显示表单的逻辑相同
  • 显示消息的消息写在后端。您能否帮助我了解正在发生的事情的正确方向?
  • 对。所以那时不会有表单输出。除非用户可能需要再次使用表单? if($submitted){ // echo message}else{//echo form}
  • 对不起,我不明白。你能解释一下我5岁吗? {% import "forms.html" as forms %} {% if (confirmation) %} <p>Thank you for your enquiry. A Sales representative will contact you shortly</p> {% endif %} {{ form.renderFormTag(url, {class: 'form service-request-form'}, {id: 'form service-request-form'})|raw }}我在整个文件中找不到 $submit 或在此表单的 PHP 文件中找不到“确认”
  • 我创建了这个变量(类似伪代码)。将else 添加到您正在使用的if 中,并且仅在没有确认时才呈现表单

标签: javascript html forms submit


【解决方案1】:

如果你想做这个服务器端,那么你可以简单地做:

{% if (confirmed) %}`
    <p>Thank you. The form has been hidden</p>
{% else %}
    <form>
        <input type='text'>
    </form>
{% endif %}

或者,如果你想做这个客户端,那么使用 jquery 很简单,你可以通过这样做来隐藏表单:

$("#form-id").hide()

【讨论】:

    【解决方案2】:

    将“myForm”id 应用于标签。

    <form id="myForm">
    

    在您用 PHP 打印的消息行之前关闭 PHP 标记,例如在联系表单的情况下,像这样。

    //your ongoing code on click event of submit button
    mail("mymail@gmail.com", $subject, $message, $headers, $email);
    ?>
    <script>
    $("#myForm").hide()
    </script>
    <?php 
    echo "Message sent.";
    ?>
    

    通过 CSS 实现的另一种方法(已测试,正在运行!)

    //your ongoing code on click event of submit button
    mail("mymail@gmail.com", $subject, $message, $headers, $email);
    ?>
    <style>
    #myForm{display:none;}
    </style>
    <?php 
    echo "Message sent.";
    ?>
    

    确保将它放在按钮的 CLICK 函数中。它应该工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2013-09-21
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多