PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por NetSynnas » Sexta Dez 17, 2004 12:58
Estou com uma dificuldade, que é a seguinte:
Tenho uma página em HTML/ASP, na qual queria que, ao introduzir letras/texto numa textbox, ele fosse actualizando um recordset (lido de uma BD em SQL)... Por exemplo, introduzo o "a", ele actualiza o rst e lista todos os produtos começados por "a", e por aí fora...
Como posso fazer isto, sabendo que estou a utilizar linguagem vbscript?
P.S.: Espero ter-me feito entender... Não sou grande espiga em programação!

-
NetSynnas
- Membro de Ouro

-
- Mensagens: 723
- Registado: Segunda Nov 17, 2003 14:43
por NetSynnas » Sábado Dez 18, 2004 1:53
Pessoal, ninguém pode dar uma ajudinha? Nem um linkzinho?
P.S.: Se tiverem qualquer tipo de receio por colocar aqui algum código, por ter medo de errar (

), mande PM... Eu aceito!

-
NetSynnas
- Membro de Ouro

-
- Mensagens: 723
- Registado: Segunda Nov 17, 2003 14:43
por alfatek » Sábado Dez 18, 2004 2:01
Em HTML/ASP não é possível fazer o que pretendes. O ASP é server-side, isto é, é executado no servidor. Quando estás a escrever num textfield não há comunicação entre cliente - servidor. Só quando o formulário é enviado é que isso acontece.
O que pretendes terá de ter ajuda de uma linguagem que corra no browser, client-side... Por exemplo JavaScript, o que normalmente nunca dá grandes resultados.
-
alfatek
- Administrador

-
- Mensagens: 3257
- Registado: Sábado Abr 06, 2002 18:28
- Localização: Coimbra
-
por NetSynnas » Sábado Dez 18, 2004 2:57
alfatek Escreveu:Em HTML/ASP não é possível fazer o que pretendes. O ASP é server-side, isto é, é executado no servidor. Quando estás a escrever num textfield não há comunicação entre cliente - servidor. Só quando o formulário é enviado é que isso acontece.
O que pretendes terá de ter ajuda de uma linguagem que corra no browser, client-side... Por exemplo JavaScript, o que normalmente nunca dá grandes resultados.
Engraçado! Disseram-me que com este atributo (onKeyUp) conseguia fazer isso... Cada vez que se introduzia uma letra ele lia no servidor e retornava o recordset... Penso!
Vou ver melhor isto! Obrigado na mesma! De qualquer maneira, caso arranje solução, eu posto por aqui!

-
NetSynnas
- Membro de Ouro

-
- Mensagens: 723
- Registado: Segunda Nov 17, 2003 14:43
por Dr » Sábado Dez 18, 2004 5:31
Como disse o alfatek, e muito bem, precisas de uma linguagem client-side. O JavaScript tem muitas funções de acesso a BD. Procura um bom manual de JavaScript que deves conseguir safar-te.
Cumprimentos.
João Ribeiro
-
Dr
- Membro de Ouro

-
- Mensagens: 903
- Registado: Quarta Jan 21, 2004 3:50
- Localização: Porto
por NetSynnas » Terça Dez 21, 2004 16:35
Felizmente, consegui fazer o que queria... Aqui fica a versão 1.0 do ficheiro (ainda precisa de ajustes, mas o fundamental está feito):
<html>
<head>
</head>
<body>
<form name="frm" method="post">
<div align="center">
<p align="left">
<%
Dim cn, rst, lngProduto, intGravar, intEliminar, intActualiza
intGravar = Request.QueryString("intGravar")
lngProduto = 1'Request.QueryString("CodProd")
'intOpcao = Request.QueryString("CodOpcao")
Set cn= CreateObject("adodb.connection")
Set rst = CreateObject("adodb.recordset")
cn.open Application("cn")
if intGravar <> "" then
response.Write("spProdutosOpcoes @Action='I',@idProduto=" & lngProduto & ",@idOpcao=" & Request.form("chkInserir"))
response.End()
cn.execute "spProdutosOpcoes @Action='I',@idProduto=" & lngProduto & ",@idOpcao=" & Request.form("chkInserir")
Response.Redirect("ProdOpcoes.asp?CodProd=" & lngProduto)
end if
%>
<p align="center">
<input name="txtNome" type="text">
<p align="center">
<%
intActualiza = Request.QueryString("intActualiza")
if intActualiza <> "" then
'response.Write("spProdutos @Action='LO',@stringNome='" & Request.form("txtNome") & "'")
'response.End()
rst.open "spProdutos @Action='LO',@stringNome='" & Request.form("txtNome") & "'",cn
%>
<table width="50%%" border="1" align="center" cellspacing="0" cellpadding="0">
<tr>
<td width="60%" bgcolor="#31649d"><span class="style1">Descrição</span></td>
<td width="25%" bgcolor="#31649d"><div align="center">
<input type="button" name="cmdInserir" id="cmdInserir" value="Inserir" style="width:100%">
</div></td>
</tr>
<%while not rst.eof%>
<tr>
<td><%=rst("Nome")%></td>
<td><div align="center">
<input name="chkInserir" type="checkbox" value="<%=rst("CodProd")%>">
</div></td>
</tr>
<% rst.movenext
wend%>
</table>
<%end if%>
</div>
</form>
</body>
</html>
<script language=vbscript>
function window_onload
frm.txtNome.focus()
end function
function txtNome_onKeyup
frm.action="FraProdOpcoes.asp?intActualiza=1"
frm.submit()
end function
sub cmdInserir_onclick
frm.action="FraProdOpcoes.asp?CodProd=<%=lngProduto%>&intGravar=1"
frm.submit()
end sub
</script>
A sp (SQL) usada:
IF @Action='LO'
BEGIN
declare @strNomeProd as nvarchar(4000)
SET @strNomeProd='
SELECT top 20 Nome,CodProd
FROM Produtos
WHERE Nome LIKE ''' + @stringNome + '%'''
Exec sp_executeSQL @strNomeProd
END
-
NetSynnas
- Membro de Ouro

-
- Mensagens: 723
- Registado: Segunda Nov 17, 2003 14:43
Voltar para Programação
Quem está ligado:
Utilizadores a ver este Fórum: Nenhum utilizador registado e 3 visitantes