Итак, я создал демо с вашим кодом, и он у меня сработал. Проблема здесь, как я вижу, должна заключаться в том, что вы не печатаете сообщение success
или error
в view
. Я написал приведенный ниже код и при необходимости сделал пояснения в комментариях. Посмотри, поможет ли это тебе.
Просмотр (Форма блога)
<?php $this->load->view('your-path/vwError'); // load a view to show errors ?>
<form method="POST" action="<?php echo base_url('form'); ?>">
<input type="text" name="email">
<input type="password" name="password">
<input type="submit" value="Submit" >
</form>
Просмотр (Ошибка)
if($this->session->flashdata('message')){
$message = $this->session->flashdata('message');
}
if($this->session->flashdata('error')){
$error = $this->session->flashdata('error');
}
<?php if (!empty($message)): ?>
<div class="alert alert-success"> <!-- your-style-here, I've used bootstrap here(Green background) -->
<a class="close" data-dismiss="alert">×</a>
<?php echo $message; ?>
</div>
<?php endif; ?>
<?php if (!empty($error)): ?>
<div class="alert alert-danger"> <!-- your-style-here, I've used bootstrap here(Red background) -->
<a class="close" data-dismiss="alert">×</a>
<?php echo $error; ?>
</div>
<?php endif; ?>
Контроллер
function form(){
$this->form_validation->set_rules("email", 'Email', "trim|required|valid_email|max_length[100]");
$this->form_validation->set_rules("password", "Password", "trim|required|min_length[8]");
if($this->form_validation->run() == TRUE){ // validation successful
// get the value if the validation is successful otherwise it's just extra code
$blog_name = $this->input->post('name');
$blog_des = $this->input->post('description');
$user_id = $this->session->userdata('user_id');
$pass = $this->Blog_Model->blog_insert($blog_name,$blog_des,$user_id); // your-logic
if ($pass === TRUE) {
$this->session->set_flashdata('message', 'Blog Was Inserted');
redirect('your-url-here');
} // you can also set a flashdata here in {else} condition if the data isn't saved ie returns FALSE
}else{ // validation failed
$this->session->set_flashdata('error', validation_errors()); // store the validation errors in flashdata
$this->load->view('your-blog-form-view'); // You probably don't want to redirect as you'd want to retain the previous input value from the user.
}
}