Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu tenho 2 arquivos:
funcao.asp
Sub Teste()
If Acao = 1 Then
Valor = 1
ElseIf Acao = 2 Then
Valor = 2
Else
Response.Write("Nenhum valor foi definido")
Response.End()
End If
End sub
index.asp
<!--#include file="../funcao.asp" -->
<% call Teste %>
<%=Valor%>
Mas não exibe nada na variável Valor.
Já se eu colocar essa função no arquivo index.asp (onde está o código) daí funciona.
Ou se eu mudar a função Teste () para:
Sub Teste()
If Acao = 1 Then
Response.Write("1")
ElseIf Acao = 2 Then
Response.Write("2")
Else
Response.Write("Nenhum valor foi definido")
Response.End()
End If
End sub
Daí ele exibe o resultado certo, ou seja, se ação for 1 ele mostra o número 1 e se Acao for 2 ele mostra o número 2...
Alguém poderia me explicar porque quando eu chamo essa função de outro arquivo ela exibe o Response.Write mas não a variável Valor?
Obrigado.
a função está errada, você precisa retornar o valor
function Teste(v)
If v= 1 Then
teste = 1
ElseIf v= 2 Then
teste= 2
Else
teste = "Nenhum valor foi definido"
End If
End function
response.write(teste(1))
O que ele fez não está totalmente errado. Ele criou um procedimento e não uma função. Mas faltou alguns detalhes.
<%
public valor
sub Teste(acao)
valor = acao
If Acao = 1 Then
Response.Write("1")
ElseIf Acao = 2 Then
Response.Write("2")
Else
Response.Write("Nenhum valor foi definido")
Response.End()
End If
end sub
call Teste(1)
response.write valor
%>Mas se quer realmente uma função, deve ser feito como o jonathandj sugeriu.
Tente passar a Acao como parametro para a função Teste().