Então continuando o tutorial, sobre construir um simples blog, hoje vamos fazer uma simples validação de formulário, para que não seja possÃvel cadastrar comentários em brancos, vamos validar o campo body e o campo author de nosso formulário…
Download do blog simples em CI com validação de formulário (CI não incluso):
Local:Â CodeIgniter Tutorial-002 (7kb)DEMO:
Verifique no Wiki
então vamos lá:
Então incluimos no arquivo system/application/controllers/blog.php
// Na função 'function Blog()' inclua a seguinte linha $this->load->library('validation'); [sourcecode] Agora no mesmo arquivo ainda vamos adicionar nossa validação de formulario; procure pela linha onde você vai encontrar: [sourcecode language='php'] $this->load->view('comment_view', $data);
agora mude e adicione as seguintes linhas:
$rules['body']Â Â Â Â Â Â = "trim|required|xss_clean"; $rules['author']Â Â Â = "trim|required|max_length[100]"; $this->validation->set_rules($rules); $this->validation->set_error_delimiters('<div>', '</div>'); if ($_POST) { $fields['body']Â Â Â Â Â Â = 'body'; $fields['author']Â Â Â = 'author'; } else { $fields['body']Â Â Â Â Â Â = ''; $fields['author']Â Â Â = ''; } $this->validation->set_fields($fields); if ($this->validation->run() == FALSE) { $this->load->view('comment_view', $data); } else { $this->comment_insert($_POST); }
Agora altere a função “function comment_insert()” para “function comment_insert($_POST)”, agora vamos modificar nossa view.
altere o arquivo system/application/views/comment_view.php para:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><?php echo $title; ?></title> <style type="text/css" media="screen"> .error { color: #FF0000; } </style> </head> <body> <h1><?php echo $heading; ?></h1> <?php echo $this->validation->error_string; ?> <?php if($query->num_rows() > 0) :?> <?php foreach($query->result() as $row): ?> <p><?php echo $row->body; ?></p> <p><?php echo $row->author; ?></p> <hr> <?php endforeach; ?> <?php endif; ?> <p><?php echo anchor('blog', 'Back to Blog');?></p> <?php echo form_open('blog/comments/' . $this->uri->segment(3));?> <?php echo form_hidden('entry_id', $this->uri->segment(3));?> <p>Body:<br /><?php echo $this->validation->body_error; ?><textarea name="body" rows="10"><?php echo $this->validation->body;?></textarea></p> <p>Author:<br /><?php echo $this->validation->author_error; ?><input type="text" name="author" value="<?php echo $this->validation->author;?>" /></p> <p><input type="submit" value="Submit Comment" /></p> </form> </body> </html>
e pronto está realizado uma simples validação do formulário.
Duvidas na mudaça verifique: http://www.edsonk.com.br/trac/changeset/15
Manual sobre validação: http://www.codeigniter.com.br/manual/libraries/validation.html
Excelente!