Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

razs

ElseIF nao funciona

Recommended Posts

Boas pessoal, tenho um elseIf que nao funciona, alguem ve algum erro??

 

<%
Dim tbl2
Dim dir
Dim var_ord
tbl2= request.queryString("tbl2")
dir= request.queryString("dir")
var_ord=request.queryString("var_ord")

if dir="" then
dir = "desc" 
else
end if

if var_ord="" then
var_ord="data"
else
end if

if var_ord="username" then
instotal = "select * from ficheiros ORDER BY username "&dir&""

elseif var_ord="data" then
instotal = "select * from ficheiros ORDER BY data_in " & dir&" , hora_in " & dir&""

elseif var_ord="center" then
instotal = "select * from ficheiros ORDER BY centro "&dir&""

elseif var_ord="study" then
instotal = "select * from ficheiros ORDER BY nome_study "&dir&""

else
end if 
rs.open instotal,conn,1,3
%>

 

Ja funciona :)

 

so uma pergunta no select embaixo porque e que ele so passa a var a segunda, nunca passa da primeira vez que seleciono

 

<form name="filtro" method="post" id="filtro" action="viewdata.asp?var_ord=<%=request.form("filtro")%>">	
<div class="field"><label>Choose Filter:</label><select name="filtro">
<option selected>Choose</option>
<option value="username">Username</option>
<option value="data">Date/Time</option>
<option value="center">Center</option>
<option value="study">Study</option>
</select></div>	
<input type="image" class="image" id="insform" name="insform" src="images/ok.jpg">
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

so uma pergunta no select embaixo porque e que ele so passa a var a segunda, nunca passa da primeira vez que seleciono

 

<form name="filtro" method="post" id="filtro" action="viewdata.asp?var_ord=<%=request.form("filtro")%>">	
<div class="field"><label>Choose Filter:</label><select name="filtro">
<option selected>Choose</option>
<option value="username">Username</option>
<option value="data">Date/Time</option>
<option value="center">Center</option>
<option value="study">Study</option>
</select></div>	
<input type="image" class="image" id="insform" name="insform" src="images/ok.jpg">
</form>

 

 

Troque essa linha

<option selected>Choose</option>

por essa

<option value="none" selected >Choose</option>

 

Era essa sua dúvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum número de erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva, nao resultou e nao da nenhum erro simplesmente sou obrigado a selecionar duas vezes cada select para poder passar as variaveis.

 

<form name="filtro" method="post" id="filtro" action="viewdata.asp?var_ord=<%=request.form("filtro")%>&dir=<%=request.form("order")%>">	
<div class="field"><select name="filtro">
<option value="none" selected>->Filter</option>
<option value="username">Username</option>
<option value="data">Date/Time</option>
<option value="center">Center</option>
<option value="study">Study</option>
</select>
<select name="order">
<option value="none" selected >->Order</option>
<option value="asc">ASC</option>
<option value="desc">DESC</option>
</select>
<input type="image" class="image" id="insform" name="insform" src="images/ok.jpg">
</div></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso significa que resolveu ou que segue o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao entendi muito bem, você precisa tipo selecionar um combo e depois com o valor do primeiro selecionar outro baseado na sua primeira escola ?

 

você também pode fazer um SELECT dinâmico, criando outra string SQL,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva Xan, nao é isso sao dois selects com valores defenidos como pode ver no codigo, um diz o tipo de filtro que vai aplicar e o outro a ordem.

 

O problema e que eu seleciono cada um deles e faço ok e ele manda as variaveis vazias, so quando seleciono a segunda vez e que ele manda.

 

acho que o problema esta no modo como leio as var, em vez de pedir a querystring

dir= request.queryString("dir")
var_ord=request.queryString("var_ord")

 

 

tem mais logica se for

dir= request.form("dir")
var_ord=request.form("var_ord")

 

penso que assim talvez resulte

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao funcionou, a coisas esquesitas...

 

chamando a string ou o form faz a mesma coisa ou seja tenho de selecionar duas vezes.

 

Alguma ideia do que esteja a fazer isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Querystring só funciona para valores passados via url.

Para valores passados por formulários, tem que usar o request.form.

seria algo mais ou menos assim:

filtro = resquest.form("filtro")
ordem = request.form("order")

 

Algo que notei no código inicial, não sei se já foi mudado, é:

if dir="" then
dir = "desc" 
else
end if

 

Como não existe nada a ser feito caso a condição não esteja como definido pelo if, pode deixar assim que terá o mesmo efeito:

if dir="" then
dir = "desc" 
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva, sim ja alterei mas esta na mesma, continuo a ter de selecionar duas vezes :S

 

Sim, eu sei que o else nao e preciso mas ja me habituei a por sempre.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o que esta sendo passado

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele nem o "eeeeeeeeeeeeeeeeeeeeeeeee" mostra e esta logo no inicio e no response.write da sql tambem nao aparece nada

 

<!--#include file="md5.asp"-->
<!--#include file="permission.asp"-->
<!--#include file="connect.asp"-->
<!--#include file="css.asp"-->
<!--#include file="random.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<header>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<%response.write "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"%>
</header>
<%
instotal = "select nome_study from studys group by nome_study" 
rs.open instotal,conn,2,2
response.write instotal
%>
</head>

<body>
<div id="wrapper1">
<div id="wrapper2">
<div id="container">

       <div id="menu">
    	<ul>
		<li><a href="contacts.asp" target="_parent">CONTACT US</a></li> 
		<li><a href="index.asp" target="_parent">HOME</a></li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei esquisito esse codigo e dei uma mexida:

<!--#include file="md5.asp"-->
<!--#include file="permission.asp"-->
<!--#include file="connect.asp"-->
<!--#include file="css.asp"-->
<!--#include file="random.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CORC - Coimbra Ophthalmology Reading Center</title>
</head>
<body>
<%response.write "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"

       instotal = "select nome_study from studys group by nome_study" 
       rs.open instotal,conn,2,2
       response.write instotal
%>

<div id="wrapper1">
<div id="wrapper2">
       <div id="container">

       <div id="menu">
       <ul>
                       <li><a href="contacts.asp" target="_parent">CONTACT US</a></li> 
                       <li><a href="index.asp" target="_parent">HOME</a></li>

 

Note que o response.write do select exibirá apenas o primeiro registro encontrado, para exibir todos que preenchem a condição do select, terás de coloca-lo dentro de um while.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente nem tinha reparado naquele header, ja retirei mas continua na mesma. vou postar tudo, talvez seja mais facil de identificar o erro assim.

 

<!--#include file="permission.asp"-->
<!--#include file="connect.asp"-->
<!--#include file="css.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>

<%
Dim tbl2
Dim dir
Dim var_ord
tbl2= request.queryString("tbl2")
dir= request.querystring("dir")
var_ord=request.querystring("var_ord")

if dir="" or dir="->Order" then
dir = "desc" 
else
end if

if var_ord="" or var_ord="->Filter" then
var_ord="data"
else
end if


if var_ord="username" then
instotal = "select * from ficheiros ORDER BY username "&dir&""

elseif var_ord="data" then
instotal = "select * from ficheiros ORDER BY data_in " & dir&" , hora_in " & dir&""

elseif var_ord="center" then
instotal = "select * from ficheiros ORDER BY centro "&dir&""

elseif var_ord="study" then
instotal = "select * from ficheiros ORDER BY nome_study "&dir&""

else

end if 



rs.open instotal,conn,1,3



%>
</head>

<body>
<div id="wrapper1">
<div id="wrapper2">
<div id="container">

       <div id="menu">
    	<ul>
		<li><a href="contacts.asp" target="_parent">CONTACT US</a></li> 
		<li><a href="index.asp" target="_parent">HOME</a></li>
          	<li><a href="http://www.aibili.pt" target="blank">AIBILI</a></li>          
       </ul>  
   </div>
   <br><br>
   <div id="header_banner">
   	<div id="header">
       	<div id="sitetitle">
           	<span></span>
		</div>
     <div id="tagline"></div>
       </div>
       <div id="banner">
       	<div id="bannertext">
           	<br /><span></span><br />
           </div>
		<%
		dim erro
		erro = request.queryString("erro")
		%>	
       </div>
   </div>

   <div id="content">

   	<div id="leftcolumn">
       	<div class="login_form">
       	<%
           If Session("user") = "" then 
           %>
          	<h1>Login</h1>

		<% response.write request.queryString("erro") %>

           <form method="post" action="login2.asp">
                   <div class="form_row"><label>Username</label><br><input name="user" type="text" class="inputfield" id="user" maxlength="60"/>
             </div>
                   <div class="form_row"><label>Password</label><br><input name="pass" type="password" class="inputfield" id="pass" maxlength="60"/>
             </div>
                   <br><input class="button" type="submit" name="Submit" value="Login" />
		  </form>

		  |<a href="recpass.asp" target="_self">Password Recovery</a>|
		  <%
		Else
		%>Welcome: <%Response.Write(Session("user"))%>
		<%
		if Session("status") = "3" then 
		%>
<br><br><ul id="qm0" class="qmmc">
<li><a class="qmparent" href="javascript:void(0)">..::Data</a>
	<ul>
	<li><a href="viewdata.asp">View Data</a></li>
	</ul></li>
<li><a class="qmparent" href="javascript:void(0)">..::Users</a>
	<ul>
	<li><a href="reguser.asp">Add User</a></li>
	<li><a href="viewuser.asp?tbl2=username&dir=asc">View User</a></li>
	<li><a href="updatuser.asp">Add User</a></li>

	</ul></li>
<li><a class="qmparent" href="javascript:void(0)">..::Studys</a>
	<ul>
	<li><a href="addstudy.asp">Add Study</a></li>
	<li><a href="viewstudy.asp">View Study</a></li>
	</ul></li>
<li><a class="qmparent" href="javascript:void(0)">..::Centers</a>
	<ul>
	<li><a href="addcenter.asp">Add Center</a></li>
	<li><a href="viewcenter.asp">View Center</a></li>
	</ul></li>
<li><a class="qmparent" href="javascript:void(0)">..::Security</a>
	<ul>
	<li><a href="security.asp">Missing Attempts</a></li>
	<li><a href="log.asp">Log</a></li>
	</ul></li>
<li><a class="qmparent" href="javascript:void(0)">..::News</a>
	<ul>
	<li><a href="addnews.asp">Add News</a></li>
	<li><a href="vernews.asp">View/Delete News</a></li>
	</ul></li>
<li><a class="qmparent" href="fechar.asp">..::Log Off</a>	
<li class="qmclear"></li></ul>
<script type="text/javascript">qm_create(0,false,0,500,'all',false,false,false,false);</script>
		<%
		else
		%>
		<br><a href="addfiles.asp">Insert Data</a>	|	<a href="updatuser.asp">Update</a>	|	<a href="cert.asp">Certification</a>	|	<a href="fechar.asp">Log off</a>	| 
		<%
		end if			
		End if
		%> 
		</div>

           <div class="spacetobottom"></div>  

       </div>


       <div id="rightcolumn">

       	<div class="twocolumn">
		<div class="search">	
<form name="filtro" method="post" id="filtro" action="viewdata.asp?var_ord=<%=request.form("filtro")%>&dir=<%=request.form("order")%>">			
<div class="field"><input type="image" class="image" id="insform" name="insform" src="images/ok.jpg">
<select name="order">
<option value="none" selected >->Order</option>
<option value="asc">ASC</option>
<option value="desc">DESC</option>
</select>
<select name="filtro">
<option value="none" selected>->Filter</option>
<option value="username">Username</option>
<option value="data">Date/Time</option>
<option value="center">Center</option>
<option value="study">Study</option>
</select>
</div>
</form>
		<h4>View Data</h4>
		<br>


		<%
		if RS.RecordCount < 1 then
		%><br><br><%Response.write "There are no records to show"
		else

		DIM intPageRecords, intRecords, intRecordCount, intCurrentPage
		DIM intNumberOfPages, intDisplayPage
		intPageRecords = Request.Querystring("page")
		IF intPageRecords = "" THEN intPageRecords = 1 : intRecords = 1
		intRecords = intPageRecords
		intPageRecords = ((intPageRecords - 1) * 10) +1
		intRecordCount = 0

		IF NOT RS.EOF THEN
		RS.Move (intPageRecords - 1)
		DO WHILE intRecordCount < 10 and NOT RS.EOF

		%>

		<BR><b><%=rs.fields("data_in")%></b>|
		<b><%=rs.fields("hora_in")%></b>|
		<a href="<%=rs.fields("ficheiro")%>"><b><%=rs.fields("ficheiro")%></b></a>|
		<b><%=rs.fields("username")%></b>|
		<b><%=rs.fields("centro")%></b>|
		<b><%=rs.fields("nome_study")%></b>|
		<a href="delete.asp?varcod=dat&id=<%= rs("id")%>">Delete File</a>	


		<%
		RS.MoveNext
		intRecordCount = intRecordCount +1
		Loop
		END IF
		%>
		<br><br><br>
		<%=intPageRecords%> - <%=intPageRecords+(intRecordCount-1)%> of <%=(RS.RecordCount)%> Users
		<%
		intCurrentPage = Request.Querystring("page")
		IF intCurrentPage = "" THEN intCurrentPage = 1
		intNumberOfPages = int(RS.RecordCount \ 10)
		IF RS.RecordCount MOD 10<> 0 THEN intNumberOfPages = intNumberOfPages + 1
		Response.Write("There are [")
		FOR intDisplayPage = 1 TO intNumberOfPages
		IF Cint(intDisplayPage) = Cint(intCurrentPage) THEN
		Response.Write " <b>" & intDisplayPage & "</b> "
		ELSE

		Response.Write " <a href=""viewdata.asp?tbl2=" &request.queryString("tbl2")& "&dir=" &request.queryString("dir")& "&page=" & intDisplayPage & """>" & intDisplayPage &"</a> "

		END IF
		NEXT
		Response.Write ("]")
		end if


		if RS.RecordCount <10 then
		else
		end if
		%>
	  </div>	

		<div class="spacetobottom"></div>         

       </div>  

</div>

<div id="footer"></div>
 </div>

</div> 
</div> 

</body>
</html>


 

Acho que a bocado postei o codigo errado :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algumas alterações mas continua a so funcionar depois de selecionar a segunda vez, isto é estranho porque funciona bem, simplesmente me obriga a selecionar os campos duas vezes.

 

<div class="search">	
<form name="filtro" method="post" id="filtro" action="viewdata.asp?tipo=<%=request.form("tipo")%>&var_ord=<%=request.form("filtro")%>&dir=<%=request.form("order")%>">			
<div class="field"><input type="image" class="image" id="insform" name="insform" src="images/ok.jpg">
<select name="order">
<option value="none" selected >->Order</option>
<option value="asc">ASC</option>
<option value="desc">DESC</option>
</select>
<select name="filtro">
<option value="none" selected>->Filter</option>
<option value="username">Username</option>
<option value="data">Date/Time</option>
<option value="center">Center</option>
<option value="study">Study</option>
</select>
<select name="tipo">->Exams
<option value="0" selected >->Exams</option>

<%instotal1 = "select * from users where username LIKE '"&session("user")&"'"
rs1.open instotal1,conn,1,3
response.write instotal1
%>

<%if rs1.fields("checkcfp")="checked" then %><option value="checkcfp">Colour Fundus Photography</option><%end if%>
<%if rs1.fields("checkfa")="checked" then%><option value="checkfa">Fluorescense Angio.</option><%end if%>
<%if rs1.fields("checkoct")="checked" then %><option value="checkoct">OCT</option><%end if%>
<%if rs1.fields("checkmferg")="checked" then %><option value="checkmferg">MFERG</option><%end if%>

</select>
</div>
</form>

		<h4>View Data</h4>
		<br>

<%	
if var_ord="username" then
instotal = "select * from ficheiros where type LIKE '"&tipo&"' ORDER BY username "&dir&""
rs.open instotal,conn,1,3
elseif var_ord="data" then
instotal = "select * from ficheiros where type like '"&tipo&"' ORDER BY data_in " & dir&" , hora_in " & dir&""
rs.open instotal,conn,1,3
elseif var_ord="center" then
instotal = "select * from ficheiros where type like '"&tipo&"' ORDER BY centro "&dir&""
rs.open instotal,conn,1,3
elseif var_ord="study" then
instotal = "select * from ficheiros where type like '"&tipo&"' ORDER BY nome_study "&dir&""
rs.open instotal,conn,1,3
end if 

if RS.RecordCount < 1 then
		%><br><br><%Response.write "There are no records to show"
	else

		DIM intPageRecords, intRecords, intRecordCount, intCurrentPage
		DIM intNumberOfPages, intDisplayPage
		intPageRecords = Request.Querystring("page")
		IF intPageRecords = "" THEN intPageRecords = 1 : intRecords = 1
		intRecords = intPageRecords
		intPageRecords = ((intPageRecords - 1) * 10) +1
		intRecordCount = 0

		IF NOT RS.EOF THEN
		RS.Move (intPageRecords - 1)
		DO WHILE intRecordCount < 10 and NOT RS.EOF
%>

		<BR><b><%=rs.fields("data_in")%></b>|
		<b><%=rs.fields("hora_in")%></b>|
		<a href="<%=rs.fields("ficheiro")%>"><b><%=rs.fields("ficheiro")%></b></a>|
		<b><%=rs.fields("username")%></b>|
		<b><%=rs.fields("centro")%></b>|
		<b><%=rs.fields("nome_study")%></b>|
		<a href="delete.asp?varcod=dat&id=<%= rs("id")%>&acao=delete_data&var_user=<%=rs.fields("ficheiro")%>" onclick="return confirm('Are you sure you wish to delete this?');">Delete File</a>


		<%
		RS.MoveNext
		intRecordCount = intRecordCount +1
		Loop
		END IF
		%>
		<br><br><br>
		<%=intPageRecords%> - <%=intPageRecords+(intRecordCount-1)%> of <%=(RS.RecordCount)%> Users
		<%
		intCurrentPage = Request.Querystring("page")
		IF intCurrentPage = "" THEN intCurrentPage = 1
		intNumberOfPages = int(RS.RecordCount \ 10)
		IF RS.RecordCount MOD 10<> 0 THEN intNumberOfPages = intNumberOfPages + 1
		Response.Write("There are [")
		FOR intDisplayPage = 1 TO intNumberOfPages
		IF Cint(intDisplayPage) = Cint(intCurrentPage) THEN
		Response.Write " <b>" & intDisplayPage & "</b> "
		ELSE

		Response.Write " <a href=""viewdata.asp?tbl2=" &request.queryString("tbl2")& "&dir=" &request.queryString("dir")& "&page=" & intDisplayPage & """>" & intDisplayPage &"</a> "

		END IF
		NEXT
		Response.Write ("]")
		end if


		if RS.RecordCount <10 then
		else
		end if
		%>
	  </div>	
		<br><br><br>

	  </div>	

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.