Os formulários interativos permitem aos autores de páginas Web dotar a sua página web de elementos interativos que permitem por exemplo um diálogo com usuário da internet , à maneira coupons-réponse presentes em certas revistas. .
O leitor apreende informações preenchendo campos ou clicando sobre botões, seguidamente apoia sobre um botão de proposta (submit) para enviar-o quer um URL, quer dizer de maneira geral um endereço enviar por correio electrônico ou um certificado de página web dinâmico como PHP, ASP ou um certificado CGI.
Os formulários são delimitados pela baliza <FORM>… </FORM>, uma baliza que permite agrupar vários elementos de formulário (botões, campos de apreensão,…) e que possui os atributos obrigatórios seguintes:
A baliza FORM possui como atributo facultativo ENCTYPE que especifica a codificação dos dados no URL, contudo ele não é necessária precisá-lo porque o valor atribuído por defeito (application/x-www-form-urlencoded) é o único valor válido. O atributo facultativo ACCEPT permite definir os tipos MIMO dos dados que podem ser enviados pelo formulário.
Eis a sintaxe da baliza FORM:
<FORM METHOD="POST" ou "GET" ACTION="url" ENCTYPE="x-www-form-urlencoded"> ... </FORM>
Eis cerca de exemplos de balizas FORM :
<FORM METHOD=POST ACTION="mailto:webmaster@kioskea.net"> <FORM METHOD=GET ACTION="http://pt.kioskea.net/cgi-bin/script.cgi">
É possível inserir qualquer elemento HTML básico numa baliza FORM (textos, botões, quadros, relações,…) mas é sobretudo interessante inserir elementos interativos. Estes elementos interativos são :
Quando um formulário é apresentado (apoio sobre o botão de proposta), os dados presentes no formulário são enviados ao certificado CGI sob a forma de pares nome/valor, quer dizer um conjunto de dados representados pelo nome do elemento de formulário, o caráter “=”, seguidamente o valor associado. O conjunto destes pares nome/valor separado entre elas por esperluettes (caráter &). Os dados enviados assemelhar-se-ão por conseguinte à isto:
champ1=valeur1&champ2=valeur2&champ3=valeur3
No caso do método GET (envio dos dados através do URL), o URL assemelhar-se-á à uma cadeia do tipo:
http://pt.kioskea.net/cgi-bin/script.cgi?champ1=val1&champ2=val2
A baliza INPUT é a baliza essencial dos formulários, porque permite criar um bom número de elementos “interativos”. A sintaxe desta baliza é a seguinte:
<INPUT type="Nom du champ" value="Valeur par défaut" name="Nom de l'élément">
Atributo name é essencial porque ele permitirá certificado CGI de conhecer campo associado par nome/valor, quer dizer que o nome do campo será seguido do caráter “=” seguidamente do valor entrado pelo utilizador, ou no caso contrário do valor por defeito localizado pelo atributo valor.
O atributo tipo permite precisar o tipo de elemento que representa a baliza INPUT, eis os valores que este campo pode tomar:
A baliza TEXTAREA permite definir uma zona de apreensão mais vasta em relação à simples linha de apreensão que propõe a baliza INPUT. Esta baliza possui os atributos seguintes:
A baliza SELECT permite criar uma lista que desenrola de elementos (precisados por balizas OPÇÃO dentro desta). Os atributos desta baliza são:
Os formulários podem ser postos em página à ajuda de quadros (aquilo é aconselhado mesmo para ter uma aposta em página cuidada). Eis um exemplo que recapitula os pontos acima e mostrando como pôr em página um formulário à ajuda de um quadro:
<FORM method=post action="cgi-bin/script.pl"> Enregistrement d'un utilisateur <TABLE BORDER=0> <TR> <TD>Nom</TD> <TD> <INPUT type=text name="nom"> </TD> </TR> <TR> <TD>Prénom</TD> <TD> <INPUT type=text name="prenom"> </TD> </TR> <TR> <TD>Sexe</TD> <TD> Homme : <INPUT type=radio name="sexe" value="M"> <br>Femme : <INPUT type=radio name="sexe" value="F"> </TD> </TR> <TR> <TD>Fonction</TD> <TD> <SELECT name="fonction"> <OPTION VALUE="enseignant">Enseignant</OPTION> <OPTION VALUE="etudiant">Etudiant</OPTION> <OPTION VALUE="ingenieur">Ingénieur</OPTION> <OPTION VALUE="retraite">Retraité</OPTION> <OPTION VALUE="autre">Autre</OPTION> </SELECT> </TD> </TR> <TR> <TD>Commentaires</TD> <TD> <TEXTAREA rows="3" name="commentaires"> Tapez ici vos commentaires</TEXTAREA> </TD> </TR> <TR> <TD COLSPAN=2> <INPUT type="submit" value="Envoyer"> </TD> </TR> </TABLE> </FORM>
Eis o resultado deste código HTML
Registo de um utilizador
| Baliza | Atributo | Valor | Resultado | Efeito Visual |
|---|---|---|---|---|
| <FORM> ... </FORM> | METHOD | POST GET |
||
| ACTION | envia ao endereço indicado | |||
| ENCTYPE | especifica o tipo de codificação utilizado | |||
| <INPUT> | TYPE | submit | efetua a AÇÃO em baliza <FORM> | |
| text | simples linha de texto cujo comprimentoé ado pelo atributo size | |||
| reset | apaga o conteúdo do formulário | |||
| radio | botão rádio | |||
| checkbox | compartimento a assinalar | |||
| NAME | Nome | |||
| SIZE | Dimensão do texto | |||
| <TEXTAREA> ... </TEXTAREA> | NAME | Zona de texto | ||
| ROWS | ||||
| COLS | ||||
<SELECT>
</SELECT> |
NAME | |||
| MULTIPLE | Várias escolhas possíveis | |||
| <OPTION> ... </OPTION> | SELECTED | Opção por defeito | ||
| VALUE | Valor forçado |