Ir para conteúdo

POWERED BY:

Arquivado

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

Alex_ps

Erro de sript

Recommended Posts

Senhores,

 

Ao paginar um resultado de pesquisa, com um script que consegui na Net, aparentemente as coisas vão bem até que eu avanço para próxima página.

A consulta exibe um select de uma tabela, com o request.QueryString sendo 1 categoria específica .

Na primeira página aparecem corretamente tanto parte da consulta, limitada pela quantidade de registros que quero exibir, como a quantidade de páginas existentes.

Quando avanço para segunda página, o resultado se altera e a paginação passa a apresentar todos os registros de todas as categorias .

Tentei alguns tutoriais de outros tópicos, ou como sugeridos aqui, em outros sites, como no aspbrasil, e no wmonline, mas deu na mesma.

 

Se ficar mais fácil, o link é My Webpage

 

Do lado esquerdo clique - Receitas - depois - Legumes e veja a paginação.

 

Imagino que o erro esteja aqui: request.QueryString("pagina")

Como copiei o código utilizei o mesmo, sem ter certeza do que é "pagina" no código.

Tentei alterar e substituir pela QueryString que eu trouxe da outra página, ou tentar substituir pela variável definida "busca", mas ele dá um erro dizendo que não pode Cint, alguma coisa do tipo se não fossem compatíveis.

E em último caso tentei substituir por RS.RecordCount , ai a coisa fica uma bagunça.

 

Eu tento entender e ai dá nó, para mim o Cint, tentaria transformar em integer a quantidade de resultados obtidos na request.QueryString. Não deu certo!

 

Afinal, o que é "pagina"?

 

Como não deu certo, pensei que talvez vcs, pudessem dar uma ajuda.

Obrigado.

 

Código abaixo:

<%

Dim sql

Dim ul

Dim vExibe

Dim txt

Dim vCrt

Dim StrIngredientes

Dim busca

Dim intpagina

Dim intrec

Dim i

 

busca=Rtrim(request.QueryString("categoria"))

 

'objeto recordset

 

Set RS = Server.CreateObject("Adodb.RecordSet")

RS.PageSize = 5

 

sql = "SELECT * FROM receitas where categoria LIKE '%"&busca&"%' ORDER BY nome"

RS.Open sql, DB,3,3

 

If RS.EOF then

Response.Write "Nenhum registro encontrado!"

Response.End

Else

 

If Request.QueryString("pagina")="" then

intpagina=1

Else

 

If Cint(Request.QueryString("pagina"))<1 then

intpagina=1

Else

 

If Cint(Request.QueryString("pagina"))>RS.PageCount then

intpagina=RS.PageCount

Else

 

intpagina=Request.QueryString("pagina")

End If

End if

End if

End if

RS.AbsolutePage=intpagina

intrec=0

%>

 

<p style="margin-top:5 px; text-align: center; font-family: Arial, Helvetica; font-size: 11px; color:#ff8000; font-weight: bold">Receitas de <%=busca%> cadastradas: 000<%=intcontador%></p>

<p align="center" style="font-size: 8pt; color: #336600; font-weight: bold ; font-family: Arial, Helvetica">

Pagina <%=intpagina%> de <%=RS.PageCount%></p>

</b>

<div align="center">

<center>

<table bgcolor="#336600" width="95%" border="0" cellpadding="1" cellspacing="1">

<tr>

<td bgcolor="#ffc386" width="30%"><p style="font-family: Arial, Helvetica; font-size: 11px; color=#336600; font-weight: bold; text-align: center">Nome</td>

<td bgcolor="#ffc386" width="65%"><p style="font-family: Arial, Helvetica; font-size: 11px; color=#336600; font-weight: bold; text-align: center">Ingredientes</td>

<td bgcolor="#ffc386" width="5%"><p style="font-family: Arial, Helvetica; font-size: 11px; color=#336600; font-weight: bold; text-align: center">Receita</td>

</tr>

<%While intrec<RS.PageSize and not RS.EOF

%>

<tr>

<td bgcolor="#fff7ef" width="30%" height="20" valign="top"><p style="font-family:Arial, Helvetica; font-size: 10px; color=#000000; text-align:justify; margin:3"><%=RS("nome")%></p></td>

<td bgcolor="#fff7ef" width="65%" height="20" valign="top"><p style="font-family:Arial, Helvetica; font-size: 10px; color=#000000; text-align:justify; margin:3"><%=RS("ingredientes")%></p></td>

<td bgcolor="#fff7ef" width="5%" height="20" valign="top"><a href="../receitas/receita.asp?codigo=<%=RS("codigo")%>"><p style="font-family: Arial, Helvetica; font-size: 10px; color: #336600; text-align: center; margin: 3; text-decoration: underline; font-weight: italic">Veja</p></a></td>

<%

Rs.movenext

intrec=intrec+1

Wend

%>

</tr>

</table>

</center>

</div>

<br>

<div id="count" align="center">

<!-- Movimento após a seleção -->

<font style="font-size: 8pt; font-family:arial, helvetica; color:#336600; font-weight: bold">

<%

If intpagina > 1 then

Response.Write "<a href=""monta_receitas.asp?pagina=" & intpagina-1 & """>Anterior</a>"

End If

 

For i=1 to RS.PageCount

 

If i = Cint(intpagina) then

Response.Write " " & i

 

else

Response.Write " <a href=""monta_receitas.asp?pagina=" & i & """>" & i & "</a>"

End If

Next

If strcomp(intpagina,RS.PageCount)<> 0 then

Response.Write " <a href=""monta_receitas.asp?pagina=" & intpagina+1 & """>Próxima</a>"

End If

DB.close

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

SObre as ASPAS no link, da forma como está sendo feita é a correta, duas ASPAS duplas dentro de um RESPONSE.WRITE são interpretadas como sendo uma que vai ser exibida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz,

 

Foi na mosca!

Eu sabia que o erro estava no link, tanto de ída, como de volta, mas não fazia a menor idéia de como resolver este problema.

Estou começando agora e nunca tinha visto utilizar a seqüência que você fez, isto sem falar nas aspas.

Muito obrigado!

Pode fechar o tópico.

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Alex_ps

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.