Foros del Web » Programando para Internet » PHP » CodeIgniter »

Codeigniter: CRUD y validaciones

Estas en el tema de Codeigniter: CRUD y validaciones en el foro de CodeIgniter en Foros del Web. Buenas estoy realizando un CRUD en codeigniter 2.0.2 yutilizando la libreria form_validation para las validaciones pero me surge una duda para el caso de la ...
  #1 (permalink)  
Antiguo 08/06/2011, 14:44
 
Fecha de Ingreso: julio-2010
Mensajes: 45
Antigüedad: 13 años, 9 meses
Puntos: 3
Codeigniter: CRUD y validaciones

Buenas estoy realizando un CRUD en codeigniter 2.0.2 yutilizando la libreria form_validation para las validaciones pero me surge una duda para el caso de la
actualizacion de datos.

Les muetro el codigo


View:

Código PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title?></title>
    </head>
    <body>
      <form method="post" action="<?php echo $action?>"> 
        <?php //echo form_open('user/userAddRes'); ?>
        <table align="center">


            <tr>
                            <td>Nombre:</td>
                            <td><input type="text" name="nombre" value="<?= set_value('nombre'); ?>" /></td>    
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('nombre'); ?></td>
                        </tr>
                        <tr>
                            <td>Apellidos:</td>
                            <td><input type="text" name="apellidos" value="<?= set_value('apellidos'); ?>" /></td>    
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('apellidos'); ?></td>
                        </tr>
                        <tr>
                            <td>Email PUCP:</td>
                            <td><input type="text" name="emailPucp" value="<?= set_value('emailPucp'); ?>" /></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" value="GUARDAR"/></td>
            </tr>
                </table>
      </form>
    </body>
</html>

como ven estoy usando la clase form_validation y el problema que tengo
por requisito del la clase for_validation para que no se pierdan los datos ingresados devo poner lo siguiente en los inputs:
Código PHP:
 value="<?= set_value('apellidos'); ?>"
y bueno mi problema es que para realizar un actualizar necesito cargar los valores registrados en la base de datos y ponerlos como valor de las etiquetas
pero no se como hacerlo ya que en el campo value ya estoy poniendo value="<?= set_value('apellidos'); ?>" para la validacion como puedo solucionar este problema.

Espero sus comentarios
  #2 (permalink)  
Antiguo 08/06/2011, 18:53
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Codeigniter: CRUD y validaciones

La function set_value(foo, var) permite dos parametros.
El primero el campo que usas para las reglas de validacion, el segundo el valor default. Esta muy bien explicado en la documentación.

Saludos.
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 09/06/2011, 09:29
 
Fecha de Ingreso: julio-2010
Mensajes: 45
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Codeigniter: CRUD y validaciones

Si gracias estoy aporevhando el valor por defecto para la primera llamada que hago
a la vista y como para esta llamada los campos del formulario estaran vacios entonces tomara los valores por defecto de una variable que gargo de base de datos y bueno para las siguientes llamadas seteo esa variable en cadena vacia de modo que si borran un campo y envian el formulario al regresar del metodo de validacion regrese como campo vacio y no con los datos de la base de datos.

Bueno no se si esta es la manera correcta de trabajar pero es la unica que se me ocurrio, si alguien conoce una manera menor o me puede brindar un ejemplo
de actualizacion de una tabla de base de datos mediante un formulario y la libreria form_validation se agradeceria bastante.
  #4 (permalink)  
Antiguo 09/06/2011, 15:48
 
Fecha de Ingreso: julio-2010
Mensajes: 45
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Codeigniter: CRUD y validaciones

Creo que no entendieron bien mi problema, tratare de explicarlo mejor.

Tengo el siguiente problema en el formulario de actualizacion.
Para repopular el formulario con los datos registrados en la base de datos deberia usar algo como esto.

Código PHP:
<input tyoe="text" name="nombre" value="<?php echo $row->nombre?>" />
Hata ahi todo bien, pero si se edita un campo con un dato erroneo al momento de realizar la validacion el formulario deberia ser repopulado con los datos del post enviado y no con los datos de la base de datos es decir para lograr esto deberia tener mi vista de la siguiente manera.

Código PHP:
<input tyoe="text" name="nombre" value="<?= set_value('nombre'); ?>"/>
Y bueno mi problema es como lograr los dos objetivos antes expuestos.

Yo propuse una posible solucion en el comentario anterior pero no se si sea la mas adecuada, ademas esa solucion solo me funciona para los campos de tipo text mas no para los checkbox o listas seleccionables.

Porfa me gustaria que me den una alternativa de solucion o pistas por donde buscar mas informacion
  #5 (permalink)  
Antiguo 15/06/2011, 11:54
 
Fecha de Ingreso: julio-2010
Mensajes: 45
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Codeigniter: CRUD y validaciones

Bueno ya encontre una posible solucion por si alguien tiene un problema similar.

View:

Código PHP:
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title?></title>
    </head>
    <body>
      <form method="post" action="<?php echo $action?>">
          
        <table align="center">

            <tr>
                            <td>Codigo PUCP:</td>
                            <td><input type="text" name="codigoPucp" value="<?= isset($user) ? set_value('codigoPucp',$user->codigoPucp) : set_value('codigoPucp'); ?>" /></td>
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('codigoPucp'); ?></td>
                        </tr>
            <tr>
                            <td>Nombre:</td>
                            <td><input type="text" name="nombre" value="<?= isset($user) ? set_value('nombre',$user->nombre) : set_value('nombre'); ?>" /></td>    
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('nombre'); ?></td>
                        </tr>
                        <tr>
                            <td>Apellidos:</td>
                            <td><input type="text" name="apellidos" value="<?= isset($user) ? set_value('apellidos',$user->apellidos) : set_value('apellidos'); ?>" /></td>    
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('apellidos'); ?></td>
                        </tr>
                        <tr>
                            <td>Email PUCP:</td>
                            <td><input type="text" name="emailPucp" value="<?= isset($user) ? set_value('emailPucp',$user->emailPucp):set_value('emailPucp'); ?>" /></td>
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('emailPucp'); ?></td>
                        </tr>
                        <tr>
                            <td>Confirmar Email:</td>
                            <td><input type="text" name="confEmail" value="<?= isset($user) ? set_value('confEmail',$user->emailPucp):set_value('confEmail'); ?>" /></td>    
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('confEmail'); ?></td>
                        </tr>
                        <tr>
                            <td><input type="radio" name="sexo" value="M" <?= set_radio('sexo',"M");  ?> <?php echo (isset($user) && $user->sexo=="M" ) ? ' checked="checked"'''?> />Maculino</td>
                            <td><input type="radio" name="sexo" value="F" <?= set_radio('sexo'"F"); ?> <?php echo (isset($user) && $user->sexo=="F" ) ? ' checked="checked"'''?> />Femenino</td>        
            </tr>
                        <tr>
                            <td>Usuario:</td>
                            <td><input type="text" name="usuario" value="<?= isset($user) ? set_value('usuario',$user->usuario):set_value('usuario'); ?>" /></td>
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('usuario'); ?></td>
                        </tr>
                        <tr>
                            <td>Contrase&ntilde;a:</td>
                <td><input type="password" name="password" value="<?= isset($user) ? set_value('password',$user->password):set_value('password'); ?>" /></td>    
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('password'); ?></td>
                        </tr>
                        <tr>
                            <td>Confirmar Contrase&ntilde;a:</td>
                            <td><input type="password" name="confPassword" value="<?= isset($user) ? set_value('confPassword',$user->password):set_value('confPassword'); ?>" /></td>
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('confPassword'); ?></td>
                        </tr>
                        <tr>
                            <td>Tel&eacute;fono M&oacute;vil:</td>
                            <td><input type="text" name="telefono" value="<?= isset($user) ? set_value('telefono',$user->telefono):set_value('telefono'); ?>" /></td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('telefono'); ?></td>
                        </tr>
                        <tr>
                            <td><input type="checkbox" name="mostrarTelefono" value="1" <?= set_checkbox('mostrarTelefono'1); ?> <?php echo (isset($user) && $user->mostrarTelefono==) ? ' checked="checked"'''?> />Deseo mostrar mi<br />
                                tel&eacute;fono m&oacute;vil</td>
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('mostrarTelefono'); ?></td>
                        </tr>
                        <tr>
                            <td><input type="checkbox" name="aceptoCond" value="S" <?php echo set_checkbox('aceptoCond','S'); ?> <?php echo (isset($user)) ? ' checked="checked"'''?> />Acepto la condiciones <br />
                                generales de uso</td>
            </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><?= form_error('aceptoCond'); ?></td>
                        </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" value="GUARDAR"/></td>
            </tr>
                </table>
      </form>
    </body>
</html>

Bueno la variable $user es enviado en la primera carga del formulario para su edicion en las posteriores llamadas por la validacion ya no se envia esta variable para evitar un mal funcionamiento.

y bueno esa es la solucion que encontre

Etiquetas: crud, frameworks-y-php-orientado-a-objetos, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:18.