Diferencia entre $ form_state ['valores'] y $ form_state ['input']


24

¿Puede alguien decirme la diferencia entre estas dos variables?

$form_state['values']
$form_state['input']

Opcionalmente, algún ejemplo de acción con el que se utilizan. Me pregunto especialmente sobre el uso con ajax en forma drupal. ¿Cuál de estos debo usar en la devolución de llamada ajax para obtener valores de entrada del formulario?

Respuestas:


27

La diferencia crucial aquí es que, en la mayoría de los casos, debería usar $ form_state ['valores']; dado que los datos en la matriz $ form_state ['input'] son ​​crudos y no validados.

$ form_state ['input'] es útil para formularios de varios pasos, suponiendo que esté familiarizado con la forma segura de manejar la entrada sin formato ... Consulte form_builder para obtener más información ...


1

A menos que sepa lo que está haciendo, usted $form_state['values']es los valores de formulario procesados. $form_state['input']son los datos en bruto. Consulte el código de form_builder: https: //api.drupal.org/api ....


0

En el 99,9% de los casos, $form_state['values']y $form_state['input']son idénticos.

Pero, tenga cuidado con una parte del 1%, particularmente cuando se utiliza el campo date_popup , ya que su entrada se almacena en 'input', pero NO en la matriz de 'valores'.


0

$form_state['values']Se deben usar en la mayoría de los casos, ya que $form_state['input']contienen el valor bruto e invalidado. También en $form_state['values']valores predeterminados se pasan cuando falla el envío del formulario, pero en caso de $form_state['input']pasar NULL.


-4

En la función drupal_form_submit , puede ver el siguiente código:

// Populate $form_state['input'] with the submitted values before retrieving
// the form, to be consistent with what drupal_build_form() does for
// non-programmatic submissions (form builder functions may expect it to be
// there).
$form_state['input'] = $form_state['values'];

Entonces es exactamente lo mismo.


44
La función anterior se usa para enviar el formulario mediante programación ... No responde la pregunta OP.
Anil Sagar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.