服务器端之后的Bootstrap验证器


Bootstrap Validator after server side

我有一个表单,我验证客户端使用引导和验证器。例子:

<div class="col-sm-6 col-md-5">
   <label>EMAIL ADDRESS</label>
   <input class="form-control" id="Email" type="email" name="email" required="" data-error="Email address is required" value="maor@traseatlas.com" placeholder="">
   <div class="help-block with-errors"></div>
</div>

效果很好。我接下来要做的是将表单发送到服务器端,并有另一个验证。

我期望的是,当服务器端返回一个错误代码,即一个字段没有被正确验证时,通过更改CSS等使验证器"打开",并让它继续具有相同的行为,就像它在客户端失败一样。

那么,我如何操作HTML/CSS,以便当它从服务器返回时,我将在屏幕上有相同的警告?

我不使用Ajax服务器端验证,只是一个普通的post到页面。

谢谢。

简单的解决方案是使用一个$errors数组。在进行验证时,将所有错误推入上述数组。如果$errors数组最后包含任何错误,则重新显示页面,并适当地注入错误消息。

一个朴素的例子:

<?php
    $errors = [];
    if(empty($_POST['some-required-field'])){
        $errors['some-required-field'] = "Some Required Field is required!";
    }
    // ... the rest ...
    if(count($errors) == 0){
        header('Location: /your-success-page.php');
    }
?>

然后,在形式为:

的标记中
<?php if(isset($errors['some-required-field'])): ?>
    <p class="help-block with-errors">
        <?: $errors['some-required-field'] ?>
    </p>
<?php endif; ?>