我用笨框架來創建我的Web應用程序。顯示錯誤消息
我對用戶輸入自己的用戶名和密碼,以及一個記得我複選框登錄表單。在用戶提交表單後,它使用jQuery的AJAX提交表單和後的數據發送到登錄控制器提交功能,用於數據檢查和處理。提交功能追着如果用戶登錄返回JSON數組。如果用戶在他成功登錄/她發送到儀表板,如果他們不是在成功登錄,然後會顯示錯誤消息,並且下每個用戶輸入都會將相應的消息顯示給未通過CI表單驗證規則的規則。
截至目前,它顯示一條消息,說它沒有通過驗證,但我有一個問題,弄清楚如何顯示沒有通過用戶輸入框下的驗證規則。
<div style="display:none" id="message_container"><button type="button" class="close" data-dismiss="alert">×</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>
public function submit()
{
$output_status = 'Notice';
$output_title = 'Not Processed';
$output_message = 'The request was unprocessed!';
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean|callback_check_username');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
$this->form_validation->set_rules('remember', 'Remember Me', 'trim|xss_clean|integer');
if ($this->form_validation->run() == TRUE)
{
}
else
{
$output_status = 'Error';
$output_title = 'Form Not Validated';
$output_message = 'The form did not validate successfully!';
}
echo json_encode(array('output_status' => $output_status, 'output_title' => $output_title, 'output_message' => $output_message));
}
public function check_username($str)
{
if (preg_match('#[0-9]#', $str) && preg_match('#[a-z]#', $str))
{
return TRUE;
}
$this->form_validation->set_message('check_username', 'This is not have an accepted value!');
return FALSE;
}
編輯:
「error_messages」:{ 「用戶名」: 「這是沒有一個公認的價值!」}}
由於我提交通過jQuery AJAX功能我這種形式試圖弄清楚我將如何做出我的陳述。考慮到我會有多個輸入,除非有更好的主意,否則必須放在每個文本字段下。
嗯,這是事物的輸出消息僅用於在出現錯誤時返回。我確實希望如果有錯誤讓他們特別在用戶文本字段下顯示具體的錯誤。 –
@KevinSmith我已經更新了我的答案,告訴您如何將錯誤發送回您的腳本,然後您可以將消息追加到您選擇的佔位符中。 – PhearOfRayne
我沒有看到表單驗證庫的error_array功能。 –