Herramientas de usuario

Herramientas del sitio


controles:wform

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
controles:wform [25/02/2020 18:19]
pedro
controles:wform [26/03/2022 12:17] (actual)
pedro [Ejemplo de uso]
Línea 1: Línea 1:
 ====== wForm ====== ====== wForm ======
-El control wForm es el contenedor estándar para el tratamiento de formularios,​ equivale a <form></​form> de [[https://​www.w3schools.com/​html/​html_forms.asp|HTML]].+El control wForm es el contenedor estándar para el tratamiento de formularios,​ equivale a <​form>​ de [[https://​www.w3schools.com/​html/​html_forms.asp|HTML]].
  
 Puede contener cualquier control de edición de datos, para una vez realizado el submit enviar el valor de todos los controles a nuestro CGI para poder tratarlos. Puede contener cualquier control de edición de datos, para una vez realizado el submit enviar el valor de todos los controles a nuestro CGI para poder tratarlos.
Línea 8: Línea 8:
 Normalmente en los formularios HTML cuando en un campo de texto pulsamos **[Intro]** se ejecuta el submit de dicho formulario. En Néfele, al pulsar **[Intro]** pasamos el foco al siguiente control, excepto que dicho [[controles:​wEdit]] tenga su propiedad **lSubmit** a .T., asignándola directamente o utilizando el método **:​SetSubmit()**,​ en ese caso se ejecutaría el submit del formulario al pulsar **[Intro]** en dicho control. Normalmente en los formularios HTML cuando en un campo de texto pulsamos **[Intro]** se ejecuta el submit de dicho formulario. En Néfele, al pulsar **[Intro]** pasamos el foco al siguiente control, excepto que dicho [[controles:​wEdit]] tenga su propiedad **lSubmit** a .T., asignándola directamente o utilizando el método **:​SetSubmit()**,​ en ese caso se ejecutaría el submit del formulario al pulsar **[Intro]** en dicho control.
  
-El Submit enviara al CGI un parámetro por cada control, siempre que tengan algún valor, por ejemplo los [[controles:​wCheck]] si están a False no se envía ningún parámetro, por eso es muy practico utilizar le método [[ocgi:​GetCGIValue|oCGI:​GetCGIValue]] con el parámetro **xdefault** con el valor que nos debe retornar en caso de que no venga.+  El ultimo control de un Formulario provoca el submit al pulsar [Intro] tenga o no la propiedad lSubmit. 
 + 
 +El Submit enviara al CGI un parámetro por cada control, siempre que tengan algún valor, por ejemplo los [[controles:​wCheckBox]] si están a False no se envía ningún parámetro, por eso es muy practico utilizar le método [[ocgi:​GetCGIValue|oCGI:​GetCGIValue]] con el parámetro **xdefault** con el valor que nos debe retornar en caso de que no venga.
  
 Los controles que permitan múltiples valores, retornaran un array por lo que es más apropiado tratarlos con [[ocgi:​GetCGIArray|oCGI:​GetCGIArray]]. Los controles que permitan múltiples valores, retornaran un array por lo que es más apropiado tratarlos con [[ocgi:​GetCGIArray|oCGI:​GetCGIArray]].
Línea 21: Línea 23:
  
 ===== Ejemplo de uso ===== ===== Ejemplo de uso =====
-{{url>​https://​samples.nefele.dev/​wform ​ 100%,300px}}+{{url>​https://​samples.nefele.dev/wiki/​wform ​ 100%,320px}}
 <​Code:​xailer linenums:​1>​ <​Code:​xailer linenums:​1>​
   WITH OBJECT WBevel():​New(:​WO)   WITH OBJECT WBevel():​New(:​WO)
Línea 54: Línea 56:
   END WITH   END WITH
 </​Code>​ </​Code>​
 +
 +===== Control de reenvió de formularios =====
 +Para evitar que el usuario provoque el reenvío del formulario, porque de más de una vez al summit o porque de al botón atrás del navegador, hemos de habilitar la propiedad **lUniqueId** de forma que cada wForm se generará con un identificador único por cada llamada que se realice al CGI.
 +
 +Luego en el Método de nuestro CGI que ha de procesar el summit del formulario, controlaremos la validez del identificador del wForm, para lo que utilizaremos la función [[funciones:​nfl_ChkFormUID]] que nos retornara **.T.** o **.F.** dependiendo de si el identificador es valido o no.
  
 ---- ----
Línea 63: Línea 70:
 |cFunction ​  ​| ​      | Función del CGI que sera llamada al hacer Submit del formulario |  0.1| |cFunction ​  ​| ​      | Función del CGI que sera llamada al hacer Submit del formulario |  0.1|
 |[[propiedades:​aParams]] |  {}    | aParams que se añadirán al submit aparte del los input visibles |  0.1| |[[propiedades:​aParams]] |  {}    | aParams que se añadirán al submit aparte del los input visibles |  0.1|
-|lAutoComplete |  .T.  | Habilita o no el Autocompletado de los campos por el Navegador |  0.1|+|lAutoComplete |  .t.  | Habilita o no el Autocompletado de los campos por el Navegador |  0.1|
 |cMethod ​    ​| ​ POST  | Método de envió de los datos del formulario (POST o GET) |  0.1| |cMethod ​    ​| ​ POST  | Método de envió de los datos del formulario (POST o GET) |  0.1|
-|lFormData ​  ​| ​ .F.   | Habilita el envió de ficheros adjuntos |  0.1|+|lFormData ​  ​| ​ .f.   | Habilita el envió de ficheros adjuntos |  0.1|
 |cFormAction |        | URL a la que se envían los datos del formulario, si es vació se envían al mismo CGI |  0.1| |cFormAction |        | URL a la que se envían los datos del formulario, si es vació se envían al mismo CGI |  0.1|
-|lNoValidate |   .F.  | Evita que se validen los campos del formulario |  0.1| +|lNoValidate |   .f.  | Evita que se validen los campos del formulario |  0.1| 
-|lNoAutoFocus |  .F.  | Deshabilita la asignación automática del Foco al primer control editable |  0.1|+|lNoAutoFocus |  .f.  | Deshabilita la asignación automática del Foco al primer control editable |  0.1
 +|lUniqueId ​  ​| ​  ​.f. ​ | Genera un código único para la llamada actual a este formulario para evitar la rellamada |  0.4|
  
  
controles/wform.1582654759.txt.gz · Última modificación: 21/07/2020 10:50 (editor externo)