2012-12-20 52 views
0

我使用Codeigniter框架來創建我的Web應用程序。從php返回的jquery顯示個別錯誤返回的json數據

我對用戶輸入自己的用戶名和密碼,以及一個記得我複選框登錄表單。在用戶提交表單後,它使用jQuery的AJAX提交表單和後的數據發送到登錄控制器提交功能,用於數據檢查和處理。在提交函數運行後,如果用戶登錄,則返回JSON數組。如果用戶成功登錄,他/她將被髮送到儀表板,並且如果他們未成功登錄,則會顯示錯誤消息用戶讓他們知道出了點問題。

我想要的是驗證規則不會傳遞到PHP端,以便他們在相應的輸入字段下顯示,就像它在jQuery表單驗證中一樣。我正在運行兩種驗證,以防萬一沒有我jQuery方面和PHP捕捉並修復問題。

截至目前,它顯示一條消息,說它沒有通過驗證,但我有一個問題,弄清楚如何顯示沒有通過用戶輸入框下的驗證規則。

這是從PHP截至目前JSON返回的消息。所以現在它說有一個錯誤,它讓用戶知道表單沒有驗證,幷包含錯誤消息,這是它沒有驗證的原因。

{"output_status":"Error","output_title":"Form Not Validated","output_message":"The form did not validate successfully!","error_messages":{"username":"This is not have an accepted value!"}} 

<div style="display:none" id="message_container"><button type="button" class="close" data-dismiss="alert">&times;</button></div> 
<div class="login_container"> 
<?php $attributes = array('id' => 'login_form', 'class' => 'form-horizontal'); ?> 
<?php echo form_open('login/submit', $attributes); ?> 
<div class="form-row row-fluid"> 
    <div class="spa12"> 
     <div class="row-fluid"> 
      <?php $attributes = array('class' => 'form_label span12'); ?> 
      <?php echo form_label('Username<span class="icon16 icomoon-icon-user-3 right gray marginR10"></span>', 'username', $attributes); ?> 
      <?php $attributes = array('name' => 'username', 'id' => 'username', 'value' => '', 'class' => 'span12 text valid'); ?> 
      <?php echo form_input($attributes); ?> 
     </div> 
    </div> 
</div> 
<div class="form-row row-fluid"> 
    <div class="span12"> 
     <div class="row-fluid"> 
      <?php $attributes = array('class' => 'form_label span12'); ?> 
      <?php echo form_label('Password<span class="icon16 icomoon-icon-locked right gray marginR10"></span><span class="forgot"><a href="#">Forgot your password?</a></span>', 'password', $attributes); ?> 
      <?php $attributes = array('name' => 'password', 'id' => 'password', 'value' => '', 'class' => 'span12 password'); ?> 
      <?php echo form_password($attributes); ?> 
     </div> 
    </div> 
</div> 
<div class="form-row row-fluid">      
    <div class="span12"> 
     <div class="row-fluid"> 
      <div class="form-actions"> 
       <div class="span12 controls"> 
        <input type="checkbox" id="keepLoged" value="Value" class="styled" name="logged" />Keep me logged in 
        <button type="submit" class="btn btn-info right" id="loginBtn"> 
         <span class="icon16 icomoon-icon-enter white"></span> 
         Login 
        </button> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
</form> 
</div> 

回答

1

你可以這樣做。在PHP端無論驗證失敗伴隨着字段名 返回錯誤信息,然後使用字段名稱中的jQuery選擇和追加錯誤消息

$(fieldname).append(<span>error</span>);