View Full Version : HTML / ASP / VBScript - Help!
Boas,
Tendo uma var
URLSTR = "t2.asp?a=" & num
pretendia fazer
<form method="post" action=URLSTR> mas ja vi que isto nao da! :(
Existe alguma maneira de fazer o que pretendo, i.e., ir para outra pagina em que os valores de "a" sao sempre diferentes? Com response.redirect(URLSTR) funciona mas eu não queria que se visse a info que estava a ser enviada (daí o uso de POST).
Gracias pela ajuda!
bergonzzi 28-06-2006, 17:09 Olá,
Estás a esquecer-te dos tags ASP ali no meio, como tás a fazer ele assume que o URLSTR ali na action é HTML. Tens que fazer o seguinte:
<form method="post" action="<%= URLSTR %>">
O <%= %> (com o "=") é equivalente ao Response.Write.
cheers
Elementary my dear Watson.... :-D
muchas gracias pela ajuda!
Boas,
Ja testei e era isso mesmo o que estava à procura mas....
ao fazer
<form method="post" action="<% URLSTR %>">
e se tivermos (por ex.)
URLSTR="t1.asp?a=3"
o browser abre a pagina t1.asp só que no URL aparece t1.asp?a=3.
Como evitar isto?
Eis o código das duas páginas nas quais estou a realizar uns testes.
t1.asp
<html><body>
<% a=request.form("a") %>
<form method="post" action="t2.asp">
<input type="text" name=b>
<br>
<input type="submit" value="+1" name=bt>
<br>
A= <%=a%>
</form>
</body></html>
t2.asp
<html><body>
<%
dim ax
ax=request.form("b")
if ax="" then
ax=0
end if
if ax<3 then
ax=ax+1
else
ax=3
end if
URLST="t1.asp?a=" & ax
%>
<form method="post" action="<%=URLST%>">
<input type="submit" name=gh>
</form>
</body></html>
Gracias! :)
bergonzzi 28-06-2006, 18:09 ao fazer
<form method="post" action="<% URLSTR %>">
e se tivermos (por ex.)
URLSTR="t1.asp?a=3"
o browser abre a pagina t1.asp só que no URL aparece t1.asp?a=3.
Como evitar isto?
Entao se tens uma variavel que é URLSTR="t1.asp?a=3" nao podes evitar muito..!
A única hipotese é fazer como ja disseste antes.. URLSTR="t1.asp?a=" & numero
Neste caso, o "numero" pode vir da querystring, dum formulário, de onde quiseres.
Agora quanto às páginas que tas a utilizar há aí uma coisa que nao está a funcionar:
Logo no início da página t1.asp tens isto <% a=request.form("a") %> no entanto na página t2.asp estás a enviar a variável "a" através da querystring e não dum formulário. Portanto para ir buscar essa variável tens que fazer <% a=request.querystring("a") %> e não "request.form".
ve lá se é isso!
Entao se tens uma variavel que é URLSTR="t1.asp?a=3" nao podes evitar muito..!
A única hipotese é fazer como ja disseste antes.. URLSTR="t1.asp?a=" & numero
Neste caso, o "numero" pode vir da querystring, dum formulário, de onde quiseres.
Aqui estava só a dar um exemplo...o que eu queria dizer era que não aparecesse no URL
?a=num
Agora quanto às páginas que tas a utilizar há aí uma coisa que nao está a funcionar:
Logo no início da página t1.asp tens isto <% a=request.form("a") %> no entanto na página t2.asp estás a enviar a variável "a" através da querystring e não dum formulário. Portanto para ir buscar essa variável tens que fazer <% a=request.querystring("a") %> e não "request.form".
ve lá se é isso!
ah! ok já entendi :cool: ...se no URL tiver ?a=3 só posso ir buscar esse valor através de request.querystring!
isto quer dizer que, mesmo tendo
<form method="POST" action="<% =URLST %>">
so atraves do querystring poderei ir buscar o valor de a?
não existe maneira de contornar isso? para no URL não aparecer o valor de a, por isso é que estava a (tentar) usar o method="POST"....
Muchas muchas gracias pela ajuda dada!
P.S.
O que eu procurava era passar valores da t2 para a t1. Depois de pesquisar um pouco pensei utilizar Server.Transfer mas não dá e então estava a tentar de outra forma. Para programar estou a utilizar o Visual InterDev 6.0
bergonzzi 28-06-2006, 18:40 Ahhh, acho que já percebi o que queres..!
O que tu precisas é de um hidden field :) ou seja, um campo que guarda um valor mas que nao aparece na página.
Na tua t2.asp tens que fazer o seguinte:
<html><body>
<%
dim ax
ax=request.form("b")
if ax="" then
ax=0
end if
if ax<3 then
ax=ax+1
else
ax=3
end if
URLST="t1.asp"
%>
<form method="post" action="<%= URLST %>">
<input type="hidden" value="<%= ax %>" name="a">
<input type="submit" name=gh>
</form>
</body></html>
As partes a vermelho foram alteradas. Repara que o action do form, neste caso, pode ter apenas o nome do ficheiro e ninguém vê nada na querystring porque tas a utilizar o post!
SoundSurfer 28-06-2006, 21:57 Se puseres o metodo "GET" em vez de "POST" e colocares um hidden (ou qualquer outro) field com o nome de "a" e o valor que pretendas, ele constrói a query string (?a=xxx) sozinho. Acho eu.
Um hidden field....tenho que exprimentar isso. Agora já não dá! Amanhã tentarei essa solução! :)
:001: É isto mesmo!
Só que agora surgiu uma outra questão ....existe maneira de passar o valor de ax para a t1.asp sem ser como está, i.e., sem ser necessário o submit?
Muito Obrigado! :)
Eureka!!! :D Faço o seguinte...
t2.asp
Session("a")=3
response.redirect("t1.asp")
t1.asp
A variavele de t2.asp = <% =session("a")%>
:D
Muchas gracias pela ajuda (+ uma vez que nunca é demais!)
bergonzzi 29-06-2006, 14:25 yup, isso mesmo, ou sessions ou cookies.
Pois também tinha-me lembrado disso mas e se o browser nao estiver a aceitar cookies?
Existe alguma forma de verificar se isso acontece?
Recordset's estão fora de questão para passar de uma ASP para outra ou ainda há esperança?
bergonzzi 29-06-2006, 14:58 ora aqui tens http://www.w3schools.com/asp/asp_cookies.asp
PS: já agora, n escrevas em branco, eu por ex. nao uso a skin default do fórum e nao vejo nada do escreves, só seleccionando o texto
OK. Espero que com esta cor já se consiga ver melhor! :)
Obrigado pela dica do site! Vou explorar, programar e testar e, se mais dúvidas surgirem, já sei onde me dirigir!
|