quinta-feira, 15 de outubro de 2015

Preenchendo formularios com Menu “dropdown” dinâmico com ASP e MySQL


No post preenchendo formularios com menu dinâmico vimos como preencher dinamicamente um formulário utilizando um menu do tipo “select” (também conhecido como “dropdown”) em PHP, utilizando PDO e banco de dados MySQL . Hoje veremos como fazer o mesmo em ASP clássico (3.0).
Vamos usar a mesma tabela de amigos desse post: busca simples com pdo e mysql.
O “truque” para isso é utilizar dois formulários; no 1º colocaremos o menu drop down; neste tuto o drop down exibirá os nomes dos amigos e no formulário serão exibidos os detalhes do amigo selecionado, como e-mail, data de nascimento e telefone. Siga os passos:

Etapa 1 – preenchendo o “combo” dinâmico

Abra seu editor e utilize o código abaixo – repare que já adicionamos, para facilitar, um formulário simples com o “drop down”:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

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

<%
set rsDatas = Server.CreateObject("ADODB.Recordset")
rsDatas.ActiveConnection = MM_cnMy_STRING
rsDatas.Source = "SELECT id, nome FROM amigos"
rsDatas.Open()
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>testecomboinput</title>
</head>

<body>
Selecione o nome do amigo:
<p>
<form id="form1" name="form1" method="post" action="">
<select name="nome" size="1" class="input-text" id="nome" type="text">
<%
While (NOT rsDatas.EOF)
%>
<option value="<%=(rsDatas.Fields.Item("id").Value)%>"><%=(rsDatas.Fields.Item("nome").Value)%></option>
<%
rsDatas.MoveNext()
Wend
%>
</select>
  &nbsp;&nbsp;
  <label>
  <input type="submit" name="Submit" value="pesquisar" />
  </label>
</form>

<p>

Salve e teste no navegador; seu “combo” já deverá exibir os nomes dos amigos:



Etapa 2 – preenchendo os campos do 2º formulário

Agora é só acrescentar uma 2ª consulta ao banco de dados e preencher um 2º formulário com os dados recuperados:

<%
dim selecionado
selecionado=Request.form("nome")

If (Request.Form("submit") <> "") Then

set rsDatas2 = Server.CreateObject("ADODB.Recordset")
rsDatas2.ActiveConnection = MM_cnMy_STRING
rsDatas2.Source = "SELECT * FROM amigos where id= '"+ selecionado +"'"
rsDatas2.Open()

%>
</p>
<form id="form2" name="form2" method="post" action="">
 e-mail: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 <input name="cxemail" type="text" id="cxemail" value="<%=(rsDatas2.Fields.Item("email").Value)%>" size="17" />
  <br />
  Telefone
  :&nbsp;
  <input name="cxtel" type="text" id="cxtel" value="<%=(rsDatas2.Fields.Item("telefone").Value)%>" size="17" />
</form>

<%
End If
%>

</body>
</html>

3. Salve e teste no navegador:


4. Agora é com você; dê um “trato” no visual e a tarefa está pronta!