• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mcosta

duvida asp

11 mensagens neste tópico

ola pessoal!!!

estou com um problema.....

eu tenho um botão html com este código gerado:

<p align="center">

<input type="submit" value="enviar" ></p>

é possivel dentro desse botão colocar um bloco de código asp e esse código só executar quando carrego no botão???

se sim´, como é que se faz???

já agora como é que se marca um tópico como resolvido???

obrigado a todos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado bruno por responderes!!

é que eu estou agora a utilizar o asp!!

o meu problema é que eu fiz um form em html para consultar um cliente!!!

peço-lhe o código nesse form e depois chamo um ficheiro asp que o que faz é ler esse número faz um select a base de dados e depois crio dentro desse mesmo ficheiro as textbox que devolve e a consulta funciona bem....

depois fiz um actualizar dados e tb só com um ficheiro asp funciona bem mas ai tenho de inserir as textboxs todas e preenche-las todas e depois ele actualiza!!!

agora o que eu queria fazer é um actualizar mas que aantes faça a consulta:

tipo peço o código do cliente

depois ele traz as textboxs com os dados todos inseridos!!

o cliente altera o que quer e depois carrega no botãoi e actualiza na base de dados!!!

o meu problema é que o enviar as textboxs preenchidas faço bem porque é igual ao consultar!!depois queria fazer uma ligação ao outro ficheiro asp que faz a actualização???

o problema é que as textboxs estão nos ficheiros de consulta e no outro ele não consegue ler os dados da textbox...

como posso fazer

???

obrigado..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu vou demonstrar os ficheiros que tenho que talvez seja mais facil,,,

eu faço um ficheiro html em que peço o código do cliente:

<html>

<head>

<meta http-equiv="Content-Language" content="pt">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Consultar</title>

<meta name="Microsoft Theme" content="slate 1011">

</head>

<body>

<form method="POST" action="alterar.asp">

<p align="center"> </p>

<p align="center"> </p>

<p align="center"><b><font face="Australian Sunrise">Código Cliente                            </font></b> <input type="text" name="cliente" size="5"></p>

<p align="center"> </p>

<p align="center"> </p>

<p align="center">

<input type="submit" value="enviar" >       <input type="reset" value="limpar" ></p>

</p>

</form>

</body>

</html>

depois tenho um ficheiro asp que se chama alterar.asp que o que faz é consultar a base de dados e devolver num form todos os dados do cliente:

o ficheiro asp é:

<html>

<head>

<meta http-equiv="Content-Language" content="pt">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Alterar</title>

<meta name="Microsoft Theme" content="slate 1011">

</head>

<body>

<%

'Dimension variables

Dim adoCon 'Holds the Database Connection Object

Dim rsCliente 'Holds the recordset for the records in the database

Dim strSQL 'Holds the SQL query for the database

Dim TXTCodigo

'Create an ADO connection odject

Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd1.mdb")

'Set an active connection to the Connection object using DSN connection

'adoCon.Open "DSN=bd1"

'Create an ADO recordset object

Set rsCliente = Server.CreateObject("ADODB.Recordset")

TXTCodigo=Request.Form("cliente")

'Response.Write(TXTCodigo)

'Initialise the strSQL variable with an SQL statement to query the database

'strSQL = "SELECT tblCliente.* FROM tblCliente;"

strSQL = "SELECT tblCliente.[Cod-cliente], tblCliente.Nome, tblCliente.Idade, tblCliente.Morada, tblCliente.Telemovel, tblCliente.Telefone, tblCliente.Profissao, tblCliente.Email FROM tblCliente WHERE (((tblCliente.[Cod-cliente])="& TXTCodigo& "))"

'Open the recordset with the SQL query

rsCliente.Open strSQL, adoCon

'Loop through the recordset

Do While not rsCliente.EOF

%>

<p align="center"> </p>

<p align="center"> </p>

<p align="center"><b><font face="Australian Sunrise">Código Cliente                            </font></b> <input type="text" name="código" size="5" value="<%=rsCliente("Cod-cliente")%>"><b></b></p>

<p align="center"><b><font face="Australian Sunrise">Nome</font></b>              

<input type="text" name="nome" size="46" value="<%=rsCliente("Nome")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Idade</font></b>                                                       

<input type="text" name="idade" size="5" value="<%=rsCliente("Idade")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Morada </font></b>          

<input type="text" name="morada" size="46" value="<%=rsCliente("Idade")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Telemóvel</font></b>                                        

<input type="text" name="telemovel" size="15" value="<%=rsCliente("Telemovel")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Telefone</font></b>                                          

<input type="text" name="telefone" size="15" value="<%=rsCliente("Telefone")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Profissão</font></b>          

<input type="text" name="profissao" size="46" value="<%=rsCliente("Profissao")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Email </font></b>             

<input type="text"  size="46" value="<%=rsCliente("Email")%>"></p>

</body>

<form method="POST" action="alterar1.asp">

<p align="center">

<input type="submit" value="enviar" ></p>

</html>

<%

'Move to the next record in the recordset

rsCliente.MoveNext

Loop

'Reset server objects

rsCliente.Close

Set rsCliente = Nothing

Set adoCon = Nothing

%>

e depois chamo outro alterar1.asp que é para ler os dados inseridos e actualizar a base de dados...aqui é que me dá problemas..

o código é:

<%

'Dimension variables

Dim adoCon 'Holds the Database Connection Object

Dim rsAddCliente 'Holds the recordset for the new record to be added to the database

Dim strSQL 'Holds the SQL query for the database

Dim TXTCodigo

'Create an ADO connection odject

Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd1.mdb")

'Set an active connection to the Connection object using DSN connection

'adoCon.Open "DSN=bd1"

'Create an ADO recordset object

Set rsAddCliente = Server.CreateObject("ADODB.Recordset")

TXTCodigo=Request.Form("cliente")

Response.Write(TXTCodigo)

'Initialise the strSQL variable with an SQL statement to query the database

'strSQL = "UPDATE tblCliente.[Cod-cliente], tblCliente.Nome, tblCliente.Idade, tblCliente.Morada, tblCliente.Telemovel, tblCliente.Telefone, tblCliente.Profissao, tblCliente.Email FROM tblCliente WHERE (((tblCliente.[Cod-cliente])="& TXTCodigo& "))"

'Set the cursor type we are using so we can navigate through the recordset

'rsAddCliente.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated

'rsAddCliente.LockType = 3

'Open the tblComments table using the SQL query held in the strSQL varaiable

'rsAddCliente.Open strSQL, adoCon

'Tell the recordset we are adding a new record to it

'rsAddCliente.AddNew

'Add a new record to the recordset

'rsAddCliente.Fields("Nome") = Request.Form("nome")

'rsAddCliente.Fields("Idade") = Request.Form("idade")

'rsAddCliente.Fields("Morada") = Request.Form("morada")

'rsAddCliente.Fields("Telemovel") = Request.Form("telemovel")

'rsAddCliente.Fields("Telefone") = Request.Form("telefone")

'rsAddCliente.Fields("Profissao") = Request.Form("profissao")

'rsAddCliente.Fields("Email") = Request.Form("email")

'Write the updated recordset to the database

'rsAddCliente.Update

'Reset server objects

'rsAddCliente.Close

'Set rsAddCliente = Nothing

'Set adoCon = Nothing

'Redirect to the guestbook.asp page

Response.write "Sucesso"

%>

mas o problema está por exemplo eu neste ultimo  ficheiro, o alterar1.asp, um response.write(TXTCodigo)...só que ele não devolve nada..

depois da erro no update...

mas é por não ter valor  nenhum no txtCodigo!!!alguem me ajude...

obrigados!!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pq tanto   ??

Devias formatar isso melhor, com css por exemplo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim eu sei...

eu isso depois altero...

em primeiro queria mesmo era por isto a funcionar...

mas não percebo como!!

como posso ir a um ficheiro asp ler os valores da textbox e passa-los para outro ficheiro???

é que no código que te mostrei acho que é aí que da problemas??

obrigado por tudo..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Utilizando ASP clássico acho q a melhor solução é ter um ASP para cada pedido.

Se nesse caso queres preencher caixas de texto, mais vale teres um ASP só para isso. Que faça logo a ligação à base de dados e q coloque logo o  valor em novas caixas html, com um design igual à página q faz o pedido.

Esta solução é o q se pode arranjar com ASP clássico, n é a melhor. Mas por algum motivo isso já se usa pouco.

No entanto espera por mais respostas, pode ser q alguém tenha outra ideia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu também só quero um pedido!!

o problema é que tem 3 ficheiros..

primeiro peço o código!!!

quando clico em enviar ele vai para o primeiro ficheiro as que como passei em cima é alterar.asp e o que faz

é devolver as textboxs com todos os dados desse cliente!!!

depois queria que se o cliente altera-se algum ele fosse oa segundo ficheiro asp que tenho aí com o nome alterar1.asp e altera-se na base de dados!!!!

o problema é que no ultimo ele não vai buscar os valores a textboxs..

acho eu...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A abordagem para ASP clássico é esta: Pedes tudo o q precisas ao cliente e envias, e mandas-lhe tudo o q ele precisa.

Mandar aos bocados e por passos em ASP Clássico é uma confusão.

Pensa na tua solução desta maneira:

O cliente tem q me enviar campos, envia-me tudo.

O cliente precisa do resultado, o servidor envia o resultado todo q ele precisa.

O cliente alterou alguns campos, volta a enviar tudo p o servidor.

O Servidor recebe os campos alterados e os restantes e coloca na base de dados e envia a resposta se correu bem ou não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e é assim que tou a fazer peço-lhe tudo o que preciso...

no form html apenas preciso do código....e é o k tou a pedir!!!!

o código é este:<html>

<head>

<meta http-equiv="Content-Language" content="pt">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Consultar</title>

<meta name="Microsoft Theme" content="slate 1011">

</head>

<body>

<form method="POST" action="alterar.asp">

<p align="center"> </p>

<p align="center"> </p>

<p align="center"><b><font face="Australian Sunrise">Código Cliente                            </font></b> <input type="text" name="cliente" size="5"></p>

<p align="center"> </p>

<p align="center"> </p>

<p align="center">

<input type="submit" value="enviar" >       <input type="reset" value="limpar" ></p>

</p>

</form>

</body>

</html>

depois neste mesmo form faço o action para o alterar.asp!!

aqui o que esta a fazer é ir ao servidor e devolver todos os dados do cliente.

e funciona também bem...

aqui para teste tenho um response.write(TXTCodigo) e ele imprime o valor certinho do cliente!!

o código é:<html>

<head>

<meta http-equiv="Content-Language" content="pt">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Alterar</title>

<meta name="Microsoft Theme" content="slate 1011">

</head>

<body>

<%

'Dimension variables

Dim adoCon 'Holds the Database Connection Object

Dim rsCliente 'Holds the recordset for the records in the database

Dim strSQL 'Holds the SQL query for the database

Dim TXTCodigo

'Create an ADO connection odject

Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd1.mdb")

'Set an active connection to the Connection object using DSN connection

'adoCon.Open "DSN=bd1"

'Create an ADO recordset object

Set rsCliente = Server.CreateObject("ADODB.Recordset")

TXTCodigo=Request.Form("cliente")

Response.Write(TXTCodigo)

'Initialise the strSQL variable with an SQL statement to query the database

'strSQL = "SELECT tblCliente.* FROM tblCliente;"

strSQL = "SELECT tblCliente.[Cod-cliente], tblCliente.Nome, tblCliente.Idade, tblCliente.Morada, tblCliente.Telemovel, tblCliente.Telefone, tblCliente.Profissao, tblCliente.Email FROM tblCliente WHERE (((tblCliente.[Cod-cliente])="& TXTCodigo& "))"

'Open the recordset with the SQL query

rsCliente.Open strSQL, adoCon

'Loop through the recordset

Do While not rsCliente.EOF

%>

<p align="center"> </p>

<p align="center"> </p>

<p align="center"><b><font face="Australian Sunrise">Código Cliente                            </font></b> <input type="text" name="cliente" size="5" value="<%=rsCliente("Cod-cliente")%>"><b></b></p>

<p align="center"><b><font face="Australian Sunrise">Nome</font></b>              

<input type="text" name="nome" size="46" value="<%=rsCliente("Nome")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Idade</font></b>                                                       

<input type="text" name="idade" size="5" value="<%=rsCliente("Idade")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Morada </font></b>          

<input type="text" name="morada" size="46" value="<%=rsCliente("Idade")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Telemóvel</font></b>                                        

<input type="text" name="telemovel" size="15" value="<%=rsCliente("Telemovel")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Telefone</font></b>                                          

<input type="text" name="telefone" size="15" value="<%=rsCliente("Telefone")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Profissão</font></b>          

<input type="text" name="profissao" size="46" value="<%=rsCliente("Profissao")%>"></p>

<p align="center"><b><font face="Australian Sunrise">Email </font></b>             

<input type="text"  size="46" value="<%=rsCliente("Email")%>"></p>

</body>

<form method="POST" action="alterar1.asp">

<p align="center">

<input type="submit" value="enviar" ></p>

</html>

<%

'Move to the next record in the recordset

rsCliente.MoveNext

Loop

'Reset server objects

rsCliente.Close

Set rsCliente = Nothing

Set adoCon = Nothing

%>

agora está o meu problema:

por exemplo no ficheiro anterior dou-lhe uma action para alterar1.asp.

no alterar1.asp para já apenas quero ir buscar o valor que está nas textboxs

fiz um ficheiro para teste mas ele não vai buscar o valor

o código que usei no alterar1.asp é:

<%

'Dimension variables

Dim adoCon 'Holds the Database Connection Object

Dim rsAddCliente 'Holds the recordset for the new record to be added to the database

Dim strSQL 'Holds the SQL query for the database

Dim TXTCodigo

'Create an ADO connection odject

Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd1.mdb")

'Set an active connection to the Connection object using DSN connection

'adoCon.Open "DSN=bd1"

'Create an ADO recordset object

Set rsAddCliente = Server.CreateObject("ADODB.Recordset")

TXTCodigo=Request.Form("cliente")

Response.Write(TXTCodigo)

Aqui não imprime nada

'Redirect to the guestbook.asp page

Response.write "Sucesso"

%>

se  alguém me puder ajudar o porquê de não passar nenhum valor agradecia...

obrigado a todos!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estás a receber o valor porque o form não tem nenhum campo cliente.

tens q subir o <form> para cima das caixas de texto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora