4D v16.3Asociar objetos 4D a objetos HTML |
||
|
4D v16.3
Asociar objetos 4D a objetos HTML
Asociar objetos 4D a objetos HTML
El servidor Web de 4D permite recuperar los datos "enviados", es decir, los datos introducidos por los usuarios a través de los formularios web y se envían al servidor vía los botones o los elementos de interfaz, en modo POST o GET. El servidor web acepta varias URLs específicas que se pueden asociar con los botones de modo que el envío del formulario desencadene el procesamiento del lado del servidor. Estas URLs se describen en la sección URLs y acciones de formularios. Este capítulo trata los principios implementados con el fin de recuperar los datos que se encuentran en los formularios que fueron devueltos al servidor. Cuando el servidor web recibe un formulario "posted", 4D puede recuperar los valores de todos los objetos HTML que contiene. Este principio puede implementarse en el caso de un formulario web, enviado por ejemplo con WEB SEND FILE o WEB SEND BLOB, donde el usuario introduce o modifica valores, luego hace clic en el botón de validación. En este caso, hay dos formas de que 4D pueda recuperar los valores de los objetos HTML presentes en la petición:
El comando WEB GET VARIABLES recupera los valores en forma de texto, mientras que los comandos WEB GET BODY PART y WEB Get body part count pueden recuperar los archivos publicados, utilizando BLOBs. Nota de compatibilidad (4D v13.4): en las versiones anteriores, 4D copiaba directamente los valores de las variables recibidas vía un formulario web publicado o un URL GET, en las variables proceso 4D (en modo compilado, estas variables tenían que haber sido declaradas en la método COMPILER_WEB). Este funcionamiento se elimina a partir de 4D v13.4, se mantiene por compatibilidad de las bases de datos convertidas, pero puede desactivarse mediante la opción de compatibilidad Asignación automática de variables en la Página Compatibilidad de las Propiedades de la base (se recomienda desactivar esta opción y utilizar los comandos WEB GET VARIABLES o WEB GET BODY PART en sus bases). Considere esta página de código HTML: <html> <head> <title>Welcome</title> <script language="JavaScript"><!-- function GetBrowserInformation(formObj){ formObj.vtNav_appName.value = navigator.appName formObj.vtNav_appVersion.value = navigator.appVersion formObj.vtNav_appCodeName.value = navigator.appCodeName formObj.vtNav_userAgent.value = navigator.userAgent return true } function LogOn(formObj){ if(formObj.vtUserName.value!=""){ return true } else { alert("Introduzca su nombre, luego intente de nuevo.") return false } } //--></script> </head> <body> <form action="/4DACTION/WWW_STD_FORM_POST" method="post" name="frmWelcome" onsubmit="return GetBrowserInformation(frmWelcome)"> <h1>Welcome to Spiders United</h1> <p><b>Por favor introduzca su nombre:</b> <input name="vtUserName" value="" size="30" type="text"></p> <p> <input name="vsbLogOn" value="Log On" onclick="return LogOn(frmWelcome)" type="submit"> <input name="vsbRegister" value="Register" type="submit"> <input name="vsbInformation" value="Information" type="submit"></p> <p> <input name="vtNav_appName" value="" type="hidden"> <input name="vtNav_appVersion" value="" type="hidden"> <input name="vtNav_appCodeName" value="" type="hidden"> <input name="vtNav_userAgent" value="" type="hidden"></p> </form> </body> </html> Cuando 4D envía la página al navegador web, se ve así: Las principales características de esta página son:
// Recuperación del valor de las variables <p>ARRAY TEXT($arrNames;0) Las características de este método son:
Si utiliza un objeto SELECT, este es el valor del elemento seleccionado en el objeto que es devuelto en el comando [#cmd id="683"/], y no posición del elemento en el array como en 4D. WEB GET VARIABLES siempre devuelve valores de tipo texto. A partir de 4D v15 R3, el 4D Web Server integrado soporta los archivos cargados en la codificación de transferencia fragmentada desde cualquier cliente Web. La codificación de transferencia fragmentada es un mecanismo de transferencia de datos especificado en HTTP/1.1. Permite que los datos sean transferidos en una serie de "trozos" (partes) sin conocer el tamaño de los datos finales. Nota: el servidor web 4D también soporta la codificación de transferencia fragmentada desde el servidor a los clientes Web (ver WEB SEND RAW DATA). Para más información acerca de la implementación del lado del cliente para transferencias fragmentadas, consulte RFC7230 o la página correspondiente en Wikipedia. El método COMPILER_WEB, si existe, se llama de forma sistemática cuando el servidor HTTP recibe una solicitud dinámica y llama al motor de 4D. Este es el caso, por ejemplo, cuando el servidor Web 4D recibe un formulario publicado o una URL que contiene la acción 4DCGI/. Este método está destinado a contener las directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador al compilar la base. El método COMPILER_WEB es común para todos los formularios web. Por defecto, no existe el método COMPILER_WEB. Debe crearlo explícitamente. Servicios web: el método de proyecto COMPILER_WEB es llamado, si existe, por cada petición SOAP aceptada. Debe utilizar este método para declarar todas las variables 4D asociadas con los argumentos SOAP entrantes y para todos los métodos publicados como Servicios web. De hecho, el uso de variables proceso en los métodos de servicios web necesita que sean declaradas antes de llamar al método. Para mayor información sobre este punto, consulte la descripción del comando SOAP DECLARATION.
Ver también
Etiquetas de transformación 4D
|
PROPIEDADES
Producto: 4D
HISTORIA
Modificado: 4D v15 R3 PALABRAS CLAVES chunked transfer encoding, COMPILER_WEB ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |