4D v14.3Binding 4D objects with HTML objects |
||
|
4D v14.3
Binding 4D objects with HTML objects
Binding 4D objects with HTML objects
Esta seção descreve os meios disponíveis pelo servidor web para intercambiar a informação através da web, ou seja, para enviar e receber dinamicamente valores. Os seguintes pontos são tratados:
Pode inserir em suas páginas HTML referências às variáveis 4D. Estas referências podem estar associadas a todo tipo de objeto HTML. Quando as páginas web são enviadas aos navegadores web, 4D substituirá estas referências com os valores atuais das variáveis. As páginas recebidas são portanto uma combinação de elementos estáticos e de valores que provêm de 4D. Este tipo de página se chama página semidinâmica. Notas:
Em primeiro lugar, um objeto HTML pode inicializar seu valor utilizando o valor de uma variável 4D. Nota: Nota: não é possível fazer referência as variáveis imagens 4D. Como um valor de objeto HTML pode ser inicializado com o valor de uma variável 4D, por programação pode oferecer valores por padrão a objetos HTML incluindo <!--#4DTEXT NomeVar--> : Undefined <!--#4DTEXT NombreVar--> no campo valor do objeto HTML, onde NomeVar é o nome da variável processo 4D como está definido no processo web atual. Este é o nome que rodeia com <!--#...-->, a notação padrão para os comentários HTML. A etiqueta também permite a inserção de expresões 4D nas páginas enviadas (campos, elementos de array, etc.). O funcionamento desta etiqueta com este tipo de dados é idêntico ao das variáveis. Para maior informação, consulte a seção ST FREEZE EXPRESSIONS. Este é um exemplo: ` O código 4D atribui "4D4D" a variável processo vs4D A fonte da página HTML AnyPage.HTM é a seguinte: <html> <head> <title>AnyPage</title> <script language="JavaScript"><!-- function Is4DWebServer(){ return (document.frm.vs4D.value=="4D4D") } function HandleButton(){ if(Is4DWebServer()){ alert("You are connected to 4D Web Server!") } else { alert("You are NOT connected to 4D Web Server!") } //--></script> </head> <body> <form action="/4DACTION/WWW_STD_FORM_POST" method="post" name="frm"> <p><input type="hidden" name="vs4D" value="<!--#4DTEXT vs4D-->"</p> <p><a href="JavaScript:HandleButton()"><img src="AnyGIF.GIF" border=0 align=bottom></a></p> <p><input type="submit" name="bOK" value="OK"></p> </form> </body> </html> Por razões de otimização, a análise do código fonte HTML não é realizada pelo servidor web de 4D quando as páginas HTML são chamadas utilizando URLs simples com sufixos “.HTML” ou “.HTM”. 4D oferece mecanismos que lhe permitem "forçar" a análise de páginas se for necessário (consulte a seção Etiquetas HTML 4D). Pode inserir código HTML nas variáveis 4D. Quando a página HTML estática for mostrada no navegador web, o valor da variável foi substituída pelo código HTML e será interpretado pelo navegador. vtHTML:="<b>"+[Cliente]nome+"</b>" Pode inserir o código HTML na página HTML utilizando o seguinte comentário: <!--#4DHTML vtHTML--> Para maior informação, consulte a seção ST FREEZE EXPRESSIONS. Quando enviar uma página HTML utilizando WEB SEND FILE ou SEND HTML 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. Nota de compatibilidade (4D v13.4): a partir de 4D v13.4, o método COMPILER_WEB já não é utilizado pelo servidor web de 4D nas novas bases. Ainda pode ser chamado em bases de dados convertidas quando a opção de compatibilidade Atribuição automática de variáveis na [#title id="3239"/] das Propriedades da base está marcada. No entanto, se recomenda desativar esta opção e o uso dos comandos em [#cmd id="683"/] ou WEB GET BODY PART em suas bases. Em modo compatibilidade, quando o servidor web 4D recebe um formulário enviado, chama automaticamente o método de projeto chamado COMPILER_WEB (se existir). Este método deve conter todas as diretivas de digitação e/ou inicialização das variáveis. Será utilizado pelo compilador em caso de compilação da base. O método COMPILER_WEB é comum para todos os formulários web. Por padrão, o método COMPILER_WEB não existir. Deve criá-lo explicitamente. |
PROPRIEDADES
Produto: 4D VER TAMBÉM
Ações URL e Formulário ARTICLE USAGE
Manual de linguagem 4D ( 4D v14 R2) Inherited from :
Binding 4D objects with HTML objects ( 4D v12.4) |