Ir para conteúdo

POWERED BY:

Arquivado

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

cintiadel

[Resolvido] Paginação no resultado da Busca

Recommended Posts

Mostre seu For Each, terá que colocar um IF nele para que não pegue a variável página e tente colocar na SQL. Isso foi gerado pelo DW não foi?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre seu For Each, terá que colocar um IF nele para que não pegue a variável página e tente colocar na SQL. Isso foi gerado pelo DW não foi?

na verdade o for each da busca n fui eu q fiz por isso fica dificil alterar, mas se puder me ajudar eu agradeço

<% 
rsLoc.PageSize = 4 'quantidade de registros por página. Você pode alterar sem conforme precise.

	myselCat= "select idCat, nomeCat from Categoria"
	myselEst= "select idEst, siglaEst from Estado"

	'variavel que inicia o select
	myselLoc = "select * from Local"
	'variavel para o where
	myselWhere = ""

	'para cada campo que vier do form como requeste execute ...
	for each field_name in request.form
	if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and request(field_name) <> "" then
	'construção do comando where
	myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "
	end if
	next
	if myselWhere <> "" then
		' se existir clausula where, adicionar where a sentença e eliminar o ultimo and que sobraria.
		myselLoc = myselLoc & " where " & left(myselWhere,len(myselWhere)-4)
	end if
	'criado apenas para teste.
	'response.write(myselLoc)
	rsLoc.Open myselLoc,con,3,3
%>

e a paginação:

<%
'Vamos agora verificar exceções do tipo “fim de arquivo” (EOF), se a página atual é menor 
'que zero, se é maior que o número total de páginas, etc.

IF rsLoc.EOF then 
   Response.Write "Nenhum Registro Encontrado"
   Response.End 'paramos o programa
ELSE
   'Definindo em qual pagina o visitante está
   IF Request.QueryString("pagina")="" then 
	  intpagina=1 
   ELSE
	  IF cint(Request.QueryString("pagina"))<1 then
		 intpagina=1 
	  ELSE
		 IF cint(Request.QueryString("pagina"))> rsLoc.PageCount then 
			intpagina=rsLoc.PageCount 
		 ELSE
			intpagina=Request.QueryString("pagina")
		 END IF
	  END IF
   END IF
END IF
'Fim das verificações de exceções

'Usamos a propriedade AbsolutePage para dizer ao RS que página ele esta 
rsLoc.AbsolutePage=intpagina

' Inicia o contador que vai controlar os registros mostrados
intrec=0

'Enquanto o contador for menor que a quantidade de registros mostrados ou
' não for o final do arquivo 
While intrec < rsLoc.PageSize and not rsLoc.EOF %><BR>
			<tr>
			  <td colspan="2">Local:</td>
			  <td><a href="DetalheLocal.asp?idLoc=<%=rsLoc("idLoc")%>">
				<%response.write rsLoc("nomeLoc") & "<BR>"%>
			  </a></td>
			</tr>
			<tr>
			  <td colspan="2">Telefone:</td>
			  <td><%response.write rsLoc("dddLoc") & " - " & rsLoc("telLoc") & "<BR>"%></td>
			</tr>
			<tr>
			  <td colspan="2">Endereço:</td>
			  <td><%response.write rsLoc("endLoc") & " , " & rsLoc("numLoc") & " , " & rsLoc("compLoc") & "<BR>"%></td>
			</tr>
			<tr>
			  <td colspan="2">Bairro:</td>
			  <td><%response.write rsLoc("bairLoc") & "<BR>"%></td>
			</tr>
			<tr>
			  <td><%   rsLoc.MoveNext

   ' Acrescenta +1 ao contador
   intrec=intrec+1 
   'Se for EOF (fim de arquivo), imprimir branco na tela
   IF rsLoc.EOF then 
	  response.write " " 
   END IF
Wend 'fim do loop

'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”. 
IF intpagina > 1 then 
%>
			  <a href="BuscaRes.asp?pagina=<%=intpagina-1%>">Anterior</a></td>
			  <td><% 
END IF

'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página 
IF strcomp(intpagina,rsLoc.PageCount) <> 0 then 
%>
			  <a href="BuscaRes.asp?pagina=<%=intpagina + 1%>">Próxima</a></td>
			  <td><% 
END IF
%>
				<a href="#" onclick="window.location='BuscaAvan.asp';">Voltar</a></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre seu For Each, terá que colocar um IF nele para que não pegue a variável página e tente colocar na SQL. Isso foi gerado pelo DW não foi?

eu consegui jogar o select numa session chamada busca, agora como chamo isso na paginação

exemplo no código da página anterior e próxima

<a href="BuscaRes.asp?pagina=<%=intpagina-1%>"><b><font color="#000000">Anterior</font><b></a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse trecho:

for each field_name in request.form

if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and request(field_name) <> "" then

'construção do comando where

myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "

end if

next

Troque por:

	for each field_name in request.form
if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and field_name <> "pagina" and request(field_name) <> "" then
'construção do comando where
myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "
end if
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse trecho:

for each field_name in request.form

if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and request(field_name) <> "" then

'construção do comando where

myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "

end if

next

Troque por:
for each field_name in request.form
	if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and field_name <> "pagina" and request(field_name) <> "" then
	'construção do comando where
	myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "
	end if
	next

vou postar o codigo nao é tao grande:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!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>GuiaD Restaurantes, Hotéis & Bares</title>
</head>

<!--#include file="Conexao.inc" -->

<% 
session("busca")=mysleLoc
rsLoc.PageSize = 3 'quantidade de registros por página. Você pode alterar sem conforme precise.

if session("busca") <> "" then
		Response.Write("<script>location='BuscaAvan.asp';alert('Selecione!')</script>")
else
		'variavel que inicia o select
		myselLoc = "select * from Local"
		' variavel para o where
		myselWhere = ""

		'para cada campo que vier do form como requeste execute ...
		 for each field_name in request.form
	if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and field_name <> "pagina" and request(field_name) <> "" then
	'construção do comando where
	myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "
	end if
	next

		if myselWhere <> "" then
			' se existir clausula where, adicionar where a sentença e eliminar o ultimo and que sobraria.
			myselLoc = myselLoc & " where " & left(myselWhere,len(myselWhere)-4)
		end if
end if

' criado apenas para teste.
response.write session("busca")
'response.end 

rsLoc.Open myselLoc,con,3,3

'Vamos agora verificar exceções do tipo “fim de arquivo” (EOF), se a página atual é menor 
'que zero, se é maior que o número total de páginas, etc.

IF rsLoc.EOF then 
   Response.Write "Nenhum Registro Encontrado"
   Response.End 'paramos o programa
ELSE
   'Definindo em qual pagina o visitante está
   IF Request.QueryString("pagina")="" then 
	  intpagina=1 
   ELSE
	  IF cint(Request.QueryString("pagina"))<1 then
		 intpagina=1 
	  ELSE
		 IF cint(Request.QueryString("pagina"))> rsLoc.PageCount then 
			intpagina=rsLoc.PageCount 
		 ELSE
			intpagina=Request.QueryString("pagina")
		 END IF
	  END IF
   END IF
END IF
'Fim das verificações de exceções

'Usamos a propriedade AbsolutePage para dizer ao RS que página ele esta 
rsLoc.AbsolutePage=intpagina

' Inicia o contador que vai controlar os registros mostrados
intrec=0

'Enquanto o contador for menor que a quantidade de registros mostrados ou
' não for o final do arquivo 
While intrec < rsLoc.PageSize and not rsLoc.EOF %><BR>

<table width="394" border="0" align="center" cellpadding="2" cellspacing="2">
  <tr>
	<td width="175">Local:</td>
	<td width="205"><%response.write rsLoc("nomeLoc") & "<BR>"%></td>
  </tr>
  <tr>
	<td>Telefone:</td>
	<td><%response.write rsLoc("dddLoc") & " - " & rsLoc("telLoc") & "<BR>"%></td>
  </tr>
  <tr>
	<td>Endereço:</td>
	<td><%response.write rsLoc("endLoc") & " , " & rsLoc("numLoc") & " , " & rsLoc("compLoc") & "<BR>"%></td>
  </tr>
  <tr>
	<td>Bairro:</td>
	<td><%response.write rsLoc("bairLoc") & "<BR>"%></td>
   </tr>
</table>

<%   rsLoc.MoveNext

   ' Acrescenta +1 ao contador
   intrec=intrec+1 
   'Se for EOF (fim de arquivo), imprimir branco na tela
   IF rsLoc.EOF then 
	  response.write " " 
   END IF
Wend 'fim do loop

'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”. 
IF intpagina > 1 then 
%> 
   <a href="BuscaRes.asp?pagina=<%=intpagina-1%>"><b><font color="#000000">Anterior</font><b></a> 
<% 
END IF

'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página 
IF strcomp(intpagina,rsLoc.PageCount) <> 0 then 
%> 
   <a href="BuscaRes.asp?pagina=<%=intpagina + 1%>"><b><font color="#000000">Próxima</font></b></a> 
<% 
END IF
%>
<body>

<a href="#" onClick="history.go(-1);"><b><font color="#000000">Voltar</font></b></a>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aqui:

for each field_name in request.form

Passe para:

		for each field_name in request

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aqui:

for each field_name in request.form

Passe para:
for each field_name in request
Deu esse erro agora:

Erro de tempo de execução do Microsoft VBScript erro '800a01b6'

O objeto não dá suporte para a propriedade ou método

/guiad/asp/BuscaRes.asp, line 24

 

que é exatamente a linha q você pediu pra q eu mudasse

ah mas uma coisinha tem algo errado eu acho na minha logica pq a mensagem de alert n aparece, ela deveria aparecer se eu n selecionasse nda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o .QueryString e teste novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui resolver valeu pela ajuda de todos

segue o código corrigido abaixo

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!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>GuiaD Restaurantes, Hotéis & Bares</title>
</head>

<!--#include file="Conexao.inc" -->

<% 
if session("busca") = "" then

		'variavel que inicia o select
		myselLoc = "select * from Local"
		' variavel para o where
		myselWhere = ""

		'para cada campo que vier do form como requeste execute ...
		for each field_name in request.form
			if field_name <> "btnBuscar2.x" and field_name <> "btnBuscar2.y" and field_name <> "btnBuscar.x" and field_name <> "btnBuscar.y" and request(field_name) <> ""  then
				'construção do comando where
				myselWhere = myselWhere & field_name & "='" & request(field_name) & "' and "
			end if
		next

		if myselWhere <> "" then
			' se existir clausula where, adicionar where a sentença e eliminar o ultimo and que sobraria.
			myselLoc = myselLoc & " where " & left(myselWhere,len(myselWhere)-4)
		end if
		
		'quarda o select pronto dentro da session busca
		session("busca") = myselLoc
else
		myselLoc = session("busca")
end if

' criado apenas para teste.
 'response.write session("busca")
' response.end 

	'quantidade de registros por página. Você pode alterar sem conforme precise.
		rsLoc.PageSize = 2 

rsLoc.Open myselLoc,con,3,3

'Vamos agora verificar exceções do tipo “fim de arquivo” (EOF), se a página atual é menor 
'que zero, se é maior que o número total de páginas, etc.

IF rsLoc.EOF then 
   Response.Write "Nenhum Registro Encontrado"
   Response.End 'paramos o programa
   session("busca") = "" ' como não retornou nada, matamos a busca
ELSE

  'Definindo em qual pagina o visitante está
   IF Request.QueryString("pagina")="" then 
	  intpagina=1 
   ELSE

	  IF cint(Request.QueryString("pagina"))<1 then
		 intpagina=1 
	  ELSE

		 IF cint(Request.QueryString("pagina"))> rsLoc.PageCount then 
			intpagina=rsLoc.PageCount 
		ELSE
			intpagina=Request.QueryString("pagina")
		 END IF
	  END IF
   END IF
END IF
'Fim das verificações de exceções

	'Usamos a propriedade AbsolutePage para dizer ao RS que página ele esta 
		rsLoc.AbsolutePage = intpagina

	'Response.Write "<p><br>Pagina:" & Request.QueryString("pagina")
	'response.write "<br>Page count:" & rsLoc.PageCount
	'Response.End


' Inicia o contador que vai controlar os registros mostrados
intrec=0

'Enquanto o contador for menor que a quantidade de registros mostrados ou
' não for o final do arquivo 
While intrec < rsLoc.PageSize and not rsLoc.EOF %><BR>

<table width="394" border="0" align="center" cellpadding="2" cellspacing="2">
  <tr>
	<td width="175">Local:</td>
	<td width="205"><%response.write rsLoc("nomeLoc") & "<BR>"%></td>
  </tr>
  <tr>
	<td>Telefone:</td>
	<td><%response.write rsLoc("dddLoc") & " - " & rsLoc("telLoc") & "<BR>"%></td>
  </tr>
  <tr>
	<td>Endereço:</td>
	<td><%response.write rsLoc("endLoc") & " , " & rsLoc("numLoc") & " , " & rsLoc("compLoc") & "<BR>"%></td>
  </tr>
  <tr>
	<td>Bairro:</td>
	<td><%response.write rsLoc("bairLoc") & "<BR>"%></td>
   </tr>
</table>

<%   rsLoc.MoveNext

   ' Acrescenta +1 ao contador
   intrec=intrec+1 
   'Se for EOF (fim de arquivo), imprimir branco na tela
   IF rsLoc.EOF then 
	  response.write " " 
   END IF
Wend 'fim do loop

'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”. 
IF intpagina > 1 then 
%> 
   <a href="BuscaRes.asp?pagina=<%=intpagina-1%>"><b><font color="#000000">Anterior</font><b></a> 
<% 
END IF

'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página 
IF strcomp(intpagina,rsLoc.PageCount) <> 0 then 
%> 
   <a href="BuscaRes.asp?pagina=<%=intpagina + 1%>"><b><font color="#000000">Próxima</font></b></a> 
<% 
END IF
%>
<body>
<p>
<a href="#" onClick="window.location='BuscaAvan.asp';"><b><font color="#000000">Voltar</font></b></a>

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.