View Full Version : HTML / ASP / VBScript - Help!


U_Q
28-06-2006, 16:59
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

U_Q
28-06-2006, 17:20
Elementary my dear Watson.... :-D

muchas gracias pela ajuda!

U_Q
28-06-2006, 17:37
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!

U_Q
28-06-2006, 18:28
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.

U_Q
29-06-2006, 02:19
Um hidden field....tenho que exprimentar isso. Agora já não dá! Amanhã tentarei essa solução! :)

U_Q
29-06-2006, 11:40
: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! :)

U_Q
29-06-2006, 12:38
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.

U_Q
29-06-2006, 14:45
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

U_Q
29-06-2006, 15:07
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!