2011-05-25 51 views
5

Debo saber ..codeigniter form set value?

es

$this->form_validation->set_value('first_name')

lo mismo que

$this->input->post('first_name') 

?

Ambos parecen obtener el valor de entrada. ¿El primero es más seguro si estoy validando las entradas?

+2

Creo que el segundo es mejor que el primero .. – Harsh

Respuesta

4

set_value() se utiliza para rellenar un formulario una vez que ha fallado la validación. No hay filtrado adicional en él, por lo que debe usar $this->input->post() si no necesita devolver el valor al formulario.

+0

Tengo un ajuste en la entrada, cuando uso set_value ('email'), el campo re-poblado se recorta. así que no creo que set_value() no tenga efecto de filtro. – OMGPOP

3

Creo que te refieres a esto:

<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" /> 

que en este caso es sólo set_value repoblar el campo de error de validación. Este:

$this->input->post('first_name'); 

es sólo conseguir el valor de $_POSTfirst_name.

7

set_value() puede devolver un valor predeterminado si se ha establecido en el segundo parámetro, y no devuelve nada si el campo no fue validado con la biblioteca de formularios de validación, mientras que $this->input->post() devolverá el valor $_POST incluso si el campo no se ha procesado por la validación lib.

Ambas funciones devolverán el valor modificado si las reglas de "preparación" se han ejecutado en la entrada.

Cuando se desea leer un valor de correos, sólo tiene que utilizar $this->input->post(), las funciones de tipo set_value() como set_select() y set_checkbox() en realidad algo así como volver selected="selected" en lugar del valor real de entrada, así que esto no va a funcionar para casillas de verificación, radios, y selecciona

+0

¡Explicación muy informativa! ¡Gracias! – CyberJunkie

+1

'set_value()' también se comporta de manera diferente con los valores de matriz $ _POST también. En resumen: se usa para repoblar un formulario y nada más. –

2

Con la biblioteca de validación anterior, validation->first_name y input->post(‘first_name’) eran intercambiables pero la nueva biblioteca ya no altera los valores de la publicación.