(Parte 3 de 6)

Formulários - Check Boxes

O objeto checkbox tem as mesmas linhas de código dos radio buttons, entretanto cada checkbox deve ter um único nome porque o estado de "checked" ou "not checked" será passado para o script ASP. Lembre-se que você pode marcar mais de uma opção.

1 <html><head>2 <TITLE>FormCheckBox.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="FormCheckBoxRespond.asp" method="post">5 <p>CheckBox Exemplo</p>6 <p>Como voce quer comprar?</p> 7 <input TYPE="checkbox" NAME="Correio">Confirmação será pelo Correio<br>8 <input TYPE="checkbox" NAME="Sedex">Confirmação enviada via Sedex<br>9 <input TYPE="checkbox" NAME="EMail" CHECKED>Confirmação por EMail<br>10 <input TYPE="checkbox" NAME="Fax">Confirmação enviada por Fax<br>11 <input TYPE="checkbox" NAME="Tel" CHECKED>Confirmação feita por telefone<br><br>12 <input type="submit"><input type="reset">13 </form><hr></body></html>

A resposta será essa:

1 <html><head>2 <TITLE>formCheckBoxRespond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%5 If request.form("Correio")="on" then6 response.write "<br>Nós confirmaremos por Correio"7 end if8 If request.form("Sedex")="on" then9 response.write "<br>Nós confirmaremos por Sedex"10 end if11 If request.form("EMail")="on" then12 response.write "<br>Nós confirmaremos por EMail"13 end if14 If request.form("fax")="on" then15 response.write "<br>Nós confirmaremos por fax"16 end if17 If request.form("tel")="on" then18 response.write "<br>Nós confirmaremos por tel"19 end if%>20 </body></html>

Introdução sobre Formulários

Formulários são o caminho natural para os usuários enviarem informações para o ASP.

  • Formulários podem ser HTML ou ASP dependendo das capacidades dinâmicas que você quer.

  • O Formulário deve passar variáveis para o arquivo ASP para processar os dados.

  • Você pode encontrar um excelente tutorial sobre formulários em http://www.mountaindragon.com/html/forms.htm (tutorial em inglês)

Formulário com GET

<form action="x.asp" method=get>....<input type=submit><input type=reset></form>

  • O formulário pode mostrar as informações dos campos na tela do browser.

  • Um script ASP pode pegar os dados dos campos do formulário da seguinte forma:<%variável=request.querystring("nome_do_campo")%>

Formulário com POST

<form action="x.asp" method=post>....<input type=submit><input type=reset></form>

  • O formulário não mostrará as informações na tela do browser. Ele enviará para o arquivo especificado no action do form e este arquivo fará o tratamento das informações.

  • Um script ASP pode pegar os dados dos campos do formulário da seguinte forma: <%variável=request.form("nome_do_campo")%>

Formulários - List Boxes

O objeto listbox é muito usado para facilitar a entrada do usuário. É apenas um lista pull down.

1 <html><head>2 <TITLE>FormListBox.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="FormListBoxRespond.asp" method="post">5 <SELECT NAME="Estado">6 <OPTION SELECTED VALUE="DF">Distrito Federal</OPTION>7 <OPTION value="BA">Salvador</OPTION>8 <OPTION value="RJ">Rio de Janeiro</OPTION>9 <OPTION value="outros">O Resto!</OPTION>10 <input type=submit>11 </form><hr></body></html>

A resposta se parecerá com:

1 <html><head>2 <TITLE>formlistboxrespond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%meuEstado = request.form("Estado")5 Select Case ucase(meuEstado)6 case "DF"7 response.write "Brasilia te espera no final do mês."8 case "BA"9 response.write "O Carnaval está chegando..."10 case else11 response.write "nenhum compromisso agendado..."12 End Select%>13 </body>14 </html>

Formulários - Radio Buttons

Todos os inputs no formulário devem ter seu nome único que o identifica para uso do script ASP. Os Radio Buttons são uma excessão. Entre as opções dos Radio Buttons, somente um valor será passado para o script ASP, isto implica que todas as opções tenham o mesmo nome. O botão selecionado como default deve ser indicado com o comando CHECKED. Isso é importante porque o browser enviará ao ASP um nome e um valor referente ao botão selecionado pelo usuário. O browser não enviará para o ASP o texto que está associado com o botão. Como no exemplo abaixo, se o usuário checar o botão com o texto SALVADOR, o ASP receberá Cidade = SSA

1 <html><head>2 <TITLE>formRadio.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="FormRadiorespond.asp" method="post">5 <p>Radio Buttons </p><br><p>Exemplo 1</p>6 <p>Qual regional você gostaria de visitar?</p> 7 <input TYPE="radio" NAME="Cidade" VALUE="SSA">Salvador8 <input TYPE="radio" NAME="Cidade" VALUE="BSB">Brasilia9 <input TYPE="radio" NAME="Cidade" VALUE="SPA" CHECKED>São Paulo10 <br><br><input type="submit"><input type="reset">11 </form><hr>12 </body></html>

A resposta se parecerá com:

1 <html><head>2 <TITLE>formradiorespond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%minhaCidade = request.form("Cidade")5 Select Case ucase(MinhaCidade)6 case "SSA"7 response.write "Salvador te espera no Carnaval"8 case "BSB"9 response.write "Brasilia te aguarda para o Impeachment do FHC"10 case "SPA"11 response.write "São Paulo é a cidade mais poluída, mas pode vir assim mesmo."12 End Select%>13 </body>14 </html>

Formulários - Text Area

O comando TEXTAREA cria uma caixa de texto com múltiplas linhas, conforme segue:

<TEXTAREA NAME="Comentarios" ROWS=5 COLS=50>... o texto padrao é digitado aqui</TEXTAREA>

Nota: O browser geralmente coloca a scroll bars automaticamente.

1 <html><head>2 <TITLE>textarea.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <hr><form action="FormTextAreaRespond.asp" method=post>5 <p>TextArea Exemplo</p>6 <p>Por Favor, coloque seu comentário:</p> 7 <TEXTAREA NAME="ComentarioDigitado" ROWS=5 COLS=50>8 comentários aparecerão aqui.9 </textarea>10 <p><input type=submit><input type=reset>11 </form><hr>12 </body></html>

A resposta para o formulário será semelhante a esta:

1 <html><head>2 <TITLE>textarearespond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%5 comm=request.form("ComentarioDigitado")6 response.write comm7 %>8 </form><hr>9 </body></html>

Formulários - Text Box

<INPUT NAME="UltimoNome">

Este comando criará um input box com o tamanho default e o browser passará para o arquivo output em ASP a variável com o nome: UltimoNome.

<INPUT NAME="CEP" SIZE="10">

Este parâmetro não limita o número de caracteres que podem ser digitados. Não use esse parâmetro como técnica de validação. Ele apenas define o tamanho da caixa de texto.

<INPUT NAME="Estado" MaxLength="2">

Agora sim. Esse parâmetro define o tamanho máximo de caracteres digitados.

<INPUT NAME="UltimoNome" VALUE="Bertrand">

O nome Bertrand aparecerá no campo texto quando a página for carregada. É um valor default.

1 <html><head>2 <title>FormTextBox.asp</title>3 </head><body bgcolor="#FFFFFF">4 <Form action = "FormTextBoxRespond.asp" method=GET>5 Fill Out This Form For Us:<p>6 Last Name -> <Input NAME="UltimoNome" size ="10"><br>7 País -> <Input NAME="País" value="USA" size=10><br>8 Estado -> <Input NAME="Estado" MaxLength="2" size=2><br>9 <Input type=submit><Input type=reset>10 <hr></form>11 </body></html>

1 <html><head>2 <title>FormTextBoxRespond.asp</title>3 </head><body bgcolor="#FFFFFF">4 <%lname=request.querystring("UltimoNome")5 cty=request.querystring("País")6 st=request.querystring("Estado")7 response.write lname & "<br>"8 response.write cty & "<br>"9 response.write st & "<br>"%>10 </body></html>

Comando IF

Frequentemente você tem que determinar o que fazer depois que o usuário faz algum input de dados. Abaixo segue um formulário que pergunta ao usuário o seu primeiro nome e o ultimo nome.

1 <html><head>2 <TITLE>Comando IF</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="ifrespond.asp" method=get>5 Your First Name<INPUT NAME="FirstName" MaxLength=20><p>6 Your Last Name<INPUT NAME="LastName" MaxLength=20><p>7 <INPUT TYPE=submit><p><INPUT TYPE=reset>8 </form></body></html>

Agora o arquivo ASP ifrespond.asp que examina o primeiro nome e o último nome depois que o formulário é enviado

1 <html><head>2 <TITLE>ifrespond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%fname=request.querystring("Firstname")5 lname=request.querystring("Lastname")6 If fname="George" and lname="Washington" then%>7 Hi.<p>You must be the first president!8 <%else%>9 Hi!<p>Nice to Meet You10 <%end if%>11 </body></html>

Comando IF - Exemplo 2

Abaixo temos o formulário que pergunta o primeiro nome e último nome do usuário

1 <html><head>2 <TITLE>asp_if2.htm</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="if2respond.asp" method=get>5 Your First Name<INPUT NAME="FirstName" MaxLength=20><p>6 Your Last Name<INPUT NAME="LastName" MaxLength=20><p>7 <INPUT TYPE=submit><p><INPUT TYPE=reset>8 </form></body></html>

Agora o arquivo ASP if2respond.asp examinará o primeiro e último nome do usuário enviado pelo formulário. Ao contrário do exemplo anterior, desta vez será checada múltiplas condições utilizando ELSEIF e formataremos as strings com letras minúsculas.

1 <html><head>2 <TITLE>if2respond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%5 fname=lcase(request.querystring("Firstname"))6 lname=lcase(request.querystring("Lastname"))7 If fname="george" and lname="washington" then%>8 Hi.<p>You must be the first president!9 <%elseIf fname="ronald" and lname="reagan" then%>10 Hi.<p>You must be the actor president!11 <%elseIf fname="jimmy" and lname="carter" then%>12 Hi.<p>You must be the peanut farmer president!13 <%elseIf fname="naoko" or fname="charles" then%>14 Hi.<p>Your name reminds me of someone<p>15 but I am not sure who!16 <%else%>17 Hi!<p>Nice to Meet You18 <%end if%>19 </body></html>

Comando IF - Exemplo 3

Abaixo temos o formulário que pergunta o primeiro nome e último nome do usuário e salário.

1 <html><head>2 <TITLE>asp_if3.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <form action="if3respond.asp" method=get>5 Your First Name<INPUT NAME="FirstName" MaxLength=20><p>6 Your Last Name<INPUT NAME="LastName" MaxLength=20><p>7 Your Salary <INPUT NAME="Salary" MaxLength=7><p>8 <INPUT TYPE=submit><p><INPUT TYPE=reset>9 </form></body></html>

Este exemplo mostra como o comando IF pode trabalhar com operadores

1 <html><head>2 <TITLE>if3respond.asp</TITLE>3 </head><body bgcolor="#FFFFFF">4 <%fname=request.querystring("Firstname")5 lname=request.querystring("Lastname")6 salary=request.querystring("Salary")7 response.write "Nice to Meet You " & fname & " " & lname & "<p>"8 If salary <6700 then9 SSTaxMarginal=0%>10 <%If salary >6700 and salary<30000 then11 SSTaxMarginal=0%>12 Would you like me to loan you some money?<p>13 <%elseif salary>100000 then%>14 Would you like to loan me some money?<p>15 <%sstaxMarginal=1516 else17 SSTaxMarginal=1518 end if%>19 By the way your marginal tax rate is <%=sstaxmarginal%>20 <%end if%>21 </body></html>

Include Files

O recurso Include Files é uma maneira de tornar o código asp eficiente e reaproveitar rotinas já prontas. No arquivo Include devem constar somente funções e procedures que podem ser usadas por um ou muitos sistemas. Basicamente existem duas formas de declará-lo:

<!--#include virtual="meu_arquivo.asp"-->

<!--#include file="meu_arquivo.asp"-->

Muitas desenvolvedores usam a extensão .inc, mas qualquer extensão pode ser usada.

IMPORTANTE: Os Include files são sempre processados e inseridos no programa antes de qualquer ASP Script. Preferencialmente no início do arquivo.

Response Object

Existem várias combinações do objeto Response que não serão vistas aqui, mas tenho certeza que estes 20% que será visto será 80% do que você vai utilizar. As propriedades vitais são:

response.writeresponse.redirect response.end

Algumas notas sobre response.write, & e =

Exemplos adicionais com &

Os próximos 3 exemplos têm a mesma saída.Exemplo 1a:<%response.write "Livro? <input type=" & """ & "TEXT" & """ & "name=" & """ &"livro" & """ & "value=" & """ & livro & """ & "></p>"%>Exemplo 2a (most readable):livro? <input type="TEXT" name="livro" value="<%=livro%>"></p>Exemplo 3a:livro? <input type="TEXT" name="livro" value="<%response.write livro%>"></p>

Os próximos 3 exemplos têm a mesma saída.Exemplo 1b: Envia "Oi Jose<p>" para o browser<%x="Oi " x = x & "Jose"response.write x & "<p>"%>Exemplo 2b: Envia "Oi Jose<p>" para o browser<% x="Joe<p>"response.write "Oi " & x & "<p>" %>Exemplo 3b: Envia "Oi Jose<p>" para o browser<% x="joe" %>Oi <%=x%><p>

Script utilizando o response.write:

1 <%2 'response.buffer=true3 response.buffer=false4 %>5 <html>6 <head>7 <title>res.asp</title>8 </head>9 <body bgcolor="#FFFFFF">10 <%11 ' Este programa demonstra as funções básicas do response12 response.write "Oi, How Are You Doing"13 for counter=1 to 500014 response.write counter & ", "15 next16 %>17 </body>18 </html>

Response Object - Segunda Parte Propriedade Buffer

<%response.buffer=true%>

Toda página desenvolvida com o FrontPage ou qualquer outro editor de HTML que misturam headers (objetos asp de servidor) e/ou texto deverá conter a linha acima antes. Se não for colocada, geralmente aparecerá uma mensagem semelhante a "headers are already sent". Esse erro costuma aparecer quando você precisa usar o propriedade response.redirect, pois essa altera o header do script. Este header não pode ser mudado se você já descarregou o buffer.

<%response.buffer=true%>

Essencialmente diz para o browser não gravar nada até que:a) response.end seja executado parando a execução e enviando as informações gravadas.b) response.flush seja executado descarregando o buffer.c) 100% da página é enviada para o browser. Se o comando response.redirect for enviado e existir o comando response.buffer=true o texto só será enviado para o browser se ocorrer a) ou b).

(Parte 3 de 6)

Comentários