2015-09-26 160 views
0

我有一個表單,我使用bootstrap和驗證器驗證客戶端。例如:服務器端後的Bootstrap驗證器

<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="[email protected]" placeholder=""> 
    <div class="help-block with-errors"></div> 
</div> 

這很好。接下來我要做的是將表單發送到服務器端,並在那裏進行另一個驗證。

我期望的是當服務器端返回一個錯誤代碼,一個字段沒有被正確驗證,讓驗證器通過更改CSS等「打開」,並讓它繼續與就像客戶端的失敗一樣。

那麼,我該如何操作HTML/CSS,以便當它從服務器返回時,我將在屏幕上顯示相同的警告?

我沒有使用Ajax進行服務器端驗證,只是一個普通的頁面。

謝謝。

回答

0

簡單的解決方案是有一個$ 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; ?> 
+0

我想過,但隨後的字體顏色不紅,與外地的邊界不是紅色,而是專注於它。我確定還有其他的東西可以觸發相同的驗證,就像我按下提交表單一樣。 –