在提交按钮上停止刷新

时间:2018-06-02 18:30:31

标签: javascript php ajax

如果if条件为false并且显示输入值的所有输入字段,是否有任何方法可以停止在提交按钮上刷新页面?

3 个答案:

答案 0 :(得分:1)

既然您提到了PHP,那么为什么不使用它呢?

我认为您的问题有两个部分,如下所示。

第一部分 - 您写道:

  

显示输入值的所有输入字段

上面,您是指使用$_SESSION使用提交的数据重新填充字段?

第二部分 - 您写道:

  

如果if条件为假,有没有办法停止提交按钮上的页面

请注意,submit和任何 on 是客户端处理范围内的事件。您可以使用jQuery或JS验证。

以下是您学习测试的两个文件。

发布php:

<html>
  <body>
    <form action="action.php" method="POST">
      <input type="text" name="feedback" value="" />
      <input type="hidden" name="token" value="123456ABCDEF" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

<?
session_start();

$token = '123456ABCDEF';

if(isset($_SESSION)){

    if($_SESSION['token'] == $token){

        echo "Your feedback:<br />";

        foreach($_SESSION as $field=>$value):
                echo $field.": ".$value."<br />";
        endforeach;     

    }else{
        echo " Bad token! Cross-Site Request Forgery (CSRF)";
    }

}else{
    echo "Nothing!";
}

发布到php:

<?php
session_start();

$_SESSION = $_POST;
$_SESSION['message'] = "Thank you for the feedback!";

header('Location: ' . $_SERVER['HTTP_REFERER']);

?>

希望我能帮到你,并帮助你。

答案 1 :(得分:-1)

首先,这是JavaScript code to stop form submission

的副本

现在,当我们解决这个问题时,这里有一个简单的解释。您无法阻止浏览器本身刷新。但是你可以做的是阻止提交表单(反过来导致刷新)。这是在JS中处理表单验证时的常用解决方案。

您可以查看与居留权相关的答案以获取更多详情。

答案 2 :(得分:-1)

您可以使用发布/重定向/获取模式。如果您有错误重定向到包含表单的同一页面并显示错误。你不能在POST期间“停止”表单。

其他方式如果您不想“显示”任何重定向,您可以使用ajax请求。形式不会“眨眼”。

您还可以使用javascript检查输入元素的onchange事件。