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:21]
pedro [Propiedades]
controles:wform [26/03/2022 12:17] (actual)
pedro [Ejemplo de uso]
Línea 7: Línea 7:
  
 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 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. 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.
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 69: Línea 76:
 |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.1582654875.txt.gz · Última modificación: 21/07/2020 10:50 (editor externo)