我需要使用php验证表单。当我去验证时,如果验证失败,我需要它保持在同一页面上。这可能吗。我知道这可以通过使用javascript完成,但我试图迎合那些关闭javascript的人。
答案 0 :(得分:0)
没有。如果您不愿意使用Javascript,则必须提交表单(并转到新页面)进行验证。
答案 1 :(得分:0)
将所有变量放入字符串中,然后使用post方法进行验证,如果出现问题,则从字符串中取出变量
$name = $_POST['name'];
<form action="validate.php" method="POST" value="$name">
<input type="text" id="name" />
</form>
答案 2 :(得分:0)
PHP是服务器端代码。为了验证页面,您需要往返服务器。如果表单没有验证,那么您可以将它们重定向回相同的页面,以及一些解释问题的标记。
那就是说,only ~1%人禁用了javascript,所以我不担心。
即使你在javascript中执行客户端表单验证,也应该始终验证服务器端。
答案 3 :(得分:0)
虽然没有客户端帮助是不可能的,但可以通过将for发布到托管表单的页面来模拟结果。
if ($_SERVER["REQUEST_METHOD"] == "POST"){
// validate your form and set placeholder variables for error messages.
if(empty($_POST["username"])) $userError = "You must supply a username";
// if the form is valid do a header redirect
header("Location: http://mysite.com/myaccount/");
}
<form method='post'>
<label for='username'>Username: </label>
<input id='username' name='username' type='text'
value='<?= isset($_POST["username"])?$_POST["username"]:"" ?>'>
<?= isset($userError)?$userError:"" ?>
</form>