如果if条件为false并且显示输入值的所有输入字段,是否有任何方法可以停止在提交按钮上刷新页面?
答案 0 :(得分:1)
既然您提到了PHP
,那么为什么不使用它呢?
我认为您的问题有两个部分,如下所示。
第一部分 - 您写道:
显示输入值的所有输入字段
上面,您是指使用$_SESSION
使用提交的数据重新填充字段?
第二部分 - 您写道:
如果if条件为假,有没有办法停止提交按钮上的页面
请注意,submit
和任何 on
是客户端处理范围内的事件。您可以使用jQuery或JS验证。
以下是您学习测试的两个文件。
<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
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事件。