4D v16.3Binding 4D objects with HTML objects |
||
|
4D v16.3
Binding 4D objects with HTML objects
Binding 4D objects with HTML objects
O servidor Web de 4D permite recuperar os dados "enviados", ou seja, os dados introduzidos pelos usuários através dos formulários web e são enviados ao servidor sob os botões ou os elementos de interface, em modo POST ou GET. O servidor web aceita várias URLs específicas que podem ser associadas com os botões de modo que o envio do formulário desencadeie o processamento do lado do servidor. Estas URLs se descrevem na seção Ações URL e Formulário. Este capítulo trata os princípios implementados com o propósito de recuperar os dados que se encontram nos formulários que foram devolvidos ao servidor. Quando enviar uma página HTML utilizando WEB SEND FILE ou WEB SEND BLOB, também pode associar as variáveis 4D com os objetos HTML no endereço “navegador web a 4D”. A associação funciona de ambas formas: quando tiver o formulário HTML é devolvido, 4D pode copiar os valores dos objetos HTML nas variáveis processo 4D. Visando a compilação do banco, estas variáveis devem ser declaradas no método COMPILER_WEB (ver o parágrafo mais adiante).
O comando WEB GET VARIABLES recupera os valores em forma de texto, enquanto os comandos WEB GET BODY PART e WEB Get body part count podem recuperar os arquivos publicados, utilizando BLOBs. Nota de compatibilidad (4D v13.4): Nas versões anteriores, 4D copiava diretamente os valores das variáveis recebidas sob um formulário web publicado ou um URL GET, nas variáveis processo 4D (em modo compilado, estas variáveis tinham que ter sido declaradas na método COMPILER_WEB). Este funcionamento se elimina a partir de 4D v13.4, se mantém por compatibilidade das bases de dados convertidas, mas pode ser desativada mediante a opção de compatibilidade 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("Enter your name, then try again.") 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>Please enter your name:</b> <input name="vtUserName" value="<!--#4DTEXT vtUserName-->" 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> Quando 4D envia a página ao navegador, tem essa aparência: As principais caraterísticas desta página são:
<p> // Recuperação do valor das variáveis As caraterísticas deste método são:
Sem importar qual objeto está associado à variável 4D, o valor devolvido é de tipo Texto, de maneira que deve associar as variáveis 4D processo de tipo Alfa ou Texto. A partir de 4D v15 R3, 4D Web Server integrado suporta os arquivos carregados na codificação de transferência fragmentada desde qualquer cliente Web. A codificação de transferência fragmentada é um mecanismo de transferência de dados especificado em HTTP/1.1. Permite que os dados sejam transferidos em una série de "pedaços" (partes) sem conhecer o tamanho dos dados finais. Nota: o servidor web 4D também suporta a codificação de transferência fragmentada desde o servidor aos clientes Web (ver WEB SEND RAW DATA). Para saber mais sobre a implementação do lado do cliente para transferências fragmentadas, consulte RFC7230 ou a página correspondente em Wikipedia. O método COMPILER_WEB, se existir, é chamado sistematicamente quando o servidor HTTP receber uma requisição dinâmica e chama o motor 4D. Este é o caso, por exemplo, quando o servidor 4D Web receber um formulário postado ou uma URL contendo a ação 4DCGI. Este método foi feito para conter digitação ou inicialização de variáveis diretivas usadas durando trocas Web. É usada pelo compilador quando o banco de dados for compilado. O método COMPILER_WEB é comum a todos os formulários Web. Como padrão, o método COMPILER_WEB não existe. Deve explicitamente criar esse método. Serviços web: o método de projeto COMPILER_WEB é chamado, se existir, para cada petição SOAP aceitada. Deve utilizar este método para declarar todas as variáveis 4D associadas com os argumentos SOAP entrantes e para todos os métodos publicados como Serviços web. Na verdade, o uso de variáveis processo nos métodos de serviços web necessita que sejam declaradas antes de chamar ao método. Para maior informação sobre este ponto, consulte a descrição do comando SOAP DECLARATION
Ver também
Ações URL e Formulário
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
Modificado: 4D v15 R3 PALAVRAS CHAVES chunked transfer encoding, COMPILER_WEB ARTICLE USAGE
Manual de linguagem 4D ( 4D v16) |