En el controlador users_edit.php
Código PHP:
Ver original
<?php class Users_edit extends Controller{ function __construct() { parent::Controller(); } function index() { // Cargamos el modelo que sirve la vista // que muestra el usuario a editar $this->load->model('/cpanel/Users_query'); $user_edit['user_edit'] = $this->Users_query->users_query_simple(); $this->load->view('/cpanel/users_edit', $user_edit); } function user_do_edit() { // Reglas de validación $this->form_validation->set_rules('usuario_nombre', 'Nombre de Usuario', 'trim|required|htmlspecialchars|xss_clean'); $this->form_validation->set_rules('usuario_email', 'Correo Electrónico', 'trim|required|htmlspecialchars|valid_email|xss_clean'); $this->form_validation->set_rules('usuario_login', 'Nombre de Login', 'trim|required|htmlspecialchars|xss_clean'); $this->form_validation->set_rules('usuario_password', 'Contraseña', 'trim|matches[usuario_password_confirm]|md5|xss_clean'); $this->form_validation->set_rules('usuario_password_confirm', 'Confirmar Contraseña', 'trim|md5|xss_clean'); $this->load->model('/cpanel/Users_query'); $user_do_edit['do_edit'] = $this->Users_query->users_query_edit(); redirect('/cpanel/users_edit/index/'.$this->input->post('usuario_ID')); } } ?>
La función index() me muestra el formulario con los datos del usuario que quiero actualizar a travez de la función users_query_simple(), cargada desde el modelo Users_query y user_do_edit() me hace la query, osea, el UPDATE, cargada desde el mismo modelo:
Código PHP:
Y el formulario o vista:Ver original
<?php class Users_query extends Model{ function Users_query() { parent::Model(); } // Seleccionar un solo usuario para editar o borrar function users_query_simple() { // Seleccionar un solo usuario $id = $this->uri->segment(4); $this->db->select('*'); $this->db->where('usuario_ID', $id); return $this->db->get('gd_usuarios'); } function users_query_edit() { $id = $this->input->post('usuario_ID'); $post_password = $this->input->post('usuario_password'); 'usuario_nombre' => $this->input->post('usuario_nombre'), 'usuario_email' => $this->input->post('usuario_email'), 'usuario_login' => $this->input->post('usuario_login'), 'usuario_password' => $this->input->post('usuario_password'), 'usuario_roll' => $this->input->post('usuario_roll')); // si el campo password viene vacio // entonces no hago nada con el... if($this->input->post('usuario_password') == '') { } $this->db->where('usuario_ID', $id); return $this->db->update('gd_usuarios', $user_data_update); } } ?>
Código PHP:
Ya leí la documentación y no entiendo porqué no hace la validación, de hecho, tengo un formulario mediante el cual hago los INSERTs a la base de datos y es prácticamente igual a esto. Pero este no me convierte los password a md5, ni me avisa que algún campo requerido llega vacío ni nada por el estilo...Ver original
<?php if($user_edit->num_rows() > 0) { $user_to_edit = $user_edit->row(); ?> <?php echo validation_errors(); ?> <?php echo form_open('/cpanel/users_edit/user_do_edit/'.$this->input->post('usuario_ID')); ?> <fieldset name="Insert User"> <legend>Editar los datos del usuario: <strong><?php echo $user_to_edit->usuario_nombre; ?></strong></legend> <label for="usuario_nombre">Nombre de Usuario</label> <input type="text" name="usuario_nombre" value="<?php echo $user_to_edit->usuario_nombre; ?>" class="input" /> <label for="usuario_email">Correo Electrónico</label> <input type="email" name="usuario_email" value="<?php echo $user_to_edit->usuario_email; echo set_value('usuario_email') ?>" class="input" /> <label for="usuario_login">Nombre de Login (Nombre que se usará para acceder al Panel de Control)</label> <input type="text" name="usuario_login" value="<?php echo $user_to_edit->usuario_login; ?>" class="input" /> <label for="usuario_password">Nueva Contraseña</label> <input type="password" name="usuario_password" value="<?php // echo set_value('usuario_password'); ?>" class="input" /> <label for="usuario_password_confirm">Confirmar Nueva Contraseña</label> <input type="password" name="usuario_password_confirm" value="<?php // echo set_value('usuario_password'); ?>" class="input" /> <label for="usuario_roll">Roll del Usuario</label> <select name="usuario_roll"> <optgroup title="Rolls de Usuarios"> <option value="3">Usuario</option> <option value="2">Editor</option> <option value="1">Administrador</option> <option value="0">Super Administrador</option> </optgroup> </select> <input type="hidden" name="usuario_ID" value="<?php echo $user_to_edit->usuario_ID; ?>" class="hidden" /> <input type="submit" name="editar_usuario" value="Editar Usuario" class="submit" /> </fieldset> </form> <?php } ?>
![triste](http://static.forosdelweb.com/fdwtheme/images/smilies/frown.png)
Gracias de antemano...