Ir para conteúdo

POWERED BY:

Arquivado

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

blayck

Imprimir registros com paginação e checkbox

Recommended Posts

Grandes,

 

Tenho uma dúvida um tanto atípica. Vamos ao caso. Estou fazendo um filtro que permite marcar vários checkbox's, cada input desse vai representar ID's a ser buscado na mesma coluna de um banco de dados.

 

Eu já conheço a expressão:

 

' pega as ID do value "valor"
vet = split(request.form("valor") & "," , ",")
for i = 0 to ubound(vet) - 1

' abre a tabela e faz a paginação
Set rs = Server.CreateObject("adodb.recordset")
sql = "SELECT * FROM tabela where dados = '"&vet(I)&"' order by rand()"
rs.Open sql,conexao,3
While Not rs.Eof
response.write "EXISTEM REGISTROS"
rs.movenext
wend

Set rs = Nothing
NEXT

 

Entretanto, acho que não é o caso, porque ao tentar utilizá-lo, ele mostra do primeiro valor (valor=1), mas do segundo valor (valor=2) não é mostrado. O que está errado?

 

OBS: Caso tenham erros no código acima, é pq acabei de digitar... Era só para exemplificar o problema.

 

Em síntese: quero que mesclem os resultados que constam com valor = 1 e valor = 2 .... valor = X (quantos os usuários quiserem).

 

Um abraço, desde já agradeço, JR!

Compartilhar este post


Link para o post
Compartilhar em outros sites

use tipo um gridview, dê uma pesquisada no fórum, insira um código assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

use tipo um gridview, dê uma pesquisada no fórum, insira um código assim

 

Grato pela atenção, mas não queria usar asp.net. Tem outra solução? Até pensei em fazer manualmente assim:

 

where campo='"&vet(0)&"' or campo='"&vet(1)&"' etc, mas não funciona, continua na mesma. Alguma ideia?

 

Outra solução que corrigitei:

where (campo='"&vet(0)&"' limit 10) or (campo='"&vet(1)&"' limit 10)... etc NÃO FUNCIONOU!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

<html>
<head>
<title>Checkbox com paginação</title>
</head>
<style type="text/css">
.texto{
font-family: Arial;
font-size: 11px;
}
</style>
<body class="texto">
<font face="Arial" size="2">

<%
'Número de registros a serem exibidos por página
Const numreg = 5

'Declara as variáveis a serem usadas
Dim strCon, objCon, pg, objRS, strQ, total, i, selecionados, registros

'String de conexão para o banco de dados
strCon = "DBQ=D:\testes\checkbox_paginacao\base_de_dados.mdb;Driver={Microsoft Access Driver (*.mdb)};"

'Cria a conexao com a base de dados
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open strCon

'Captura o numero da pagina atual
pg = Trim(Request.Form("pg") & " ")
If Not IsNumeric(pg) Then
 pg = 1
End If
pg = Int(pg)

If pg = 0 Then

 registros = ""
 total = Request.Form("total")
 For i = 1 to total
   If Trim(Request.Form("registros_pg" & i) & " ") <> "" Then
     registros = registros & Trim(Request.Form("registros_pg" & i) & " ") & ","
End If
 Next
 registros = Replace(registros," ","")
 registros = Replace(registros,",,",",")
 If Trim(registros) <> "" Then
  'Captura apenas os registros selecionados
   strQ = Replace(registros,","," OR id=")
   strQ = "SELECT * FROM produtos WHERE id=" & strQ & "0 ORDER BY nome ASC"
   Set objRS = objCon.Execute(strQ)
   If Not objRS.EOF  Then
     Response.Write "Veja os produtos selecionados:<br><br><font color='steelblue'>"
  While Not objRS.EOF
    Response.Write "- <b>" & objRS("nome") & "</b><br>"
    objRS.MoveNext
  Wend
  Response.Write "</font>"
   End If
 Else
   Response.Write "Nenhum registro foi selecionado"
 End If

Else

 Response.Write "<form name='form_paginacao' method='post' action='" & Request.ServerVariables("SCRIPT_NAME") & "'>"
 Set objRS = Server.CreateObject("ADODB.Recordset")
 objRS.CursorLocation = 3
 objRS.CursorType = 3
 objRS.LockType = 1
 objRS.CacheSize = numreg
 strQ = "SELECT * FROM produtos ORDER BY nome ASC"
 objRS.Open strQ, objCon, , , &H0001
 objRS.PageSize = numreg
 If Not objRS.EOF  Then
   Response.Write "<font color='steelblue'><b>Selecione os produtos desejados</b></font><br>"
   objRS.AbsolutePage = pg
   total = objRS.PageCount
   For i = 1 to objRS.PageSize
     Response.Write "<input name='registros_pg" & pg & "' type='checkbox' value='"
     Response.Write objRS("id") & "'"
  selecionados = Trim( Request("registros_pg" & pg) & " ")
  selecionados = Replace(selecionados," ","")
  selecionados = "," & selecionados & ","
     If InStr("," & selecionados, "," & objRS("id") & ",") > 0 Then Response.Write " checked"
     Response.Write ">"
     Response.Write objRS("nome")
     Response.Write "<br>"
     objRS.MoveNext
     If objRS.Eof then Exit For
   Next
   objRS.Close
 Else
   Response.Write "Nenhum produto encontrado"
 End If

 Response.Write "<input name='pg' type='hidden' value='" & pg & "'>"
 Response.Write "<input name='total' type='hidden' value='" & total & "'>"
 For i = 1 to total
   If i <> pg Then Response.Write "<input name='registros_pg" & i & "' type='hidden' value='" & Request.Form("registros_pg" & i) & "'>"
 Next

 Response.Write "<br>Página " & pg & " de " & total
 Response.Write "<br>"
 If pg > 1 Then
   Response.Write "<img src='anterior.gif' border=0 align=absmiddle onClick='form_paginacao.pg.value=" & pg-1 & "; form_paginacao.submit()' style='cursor: hand'>"
 Else
   Response.Write "<img src='anterior_no.gif' border=0 align=absmiddle>"
 End If
 If total > pg Then
   Response.Write "<img src='proxima.gif' border=0 align=absmiddle onClick='form_paginacao.pg.value=" & pg+1 & "; form_paginacao.submit()' style='cursor: hand'>"
 Else
   Response.Write "<img src='proxima_no.gif' border=0 align=absmiddle>"
 End If
 If pg = total Then
   Response.Write "<br><br><img src='enviar.gif' border=0 align=absmiddle onClick='form_paginacao.pg.value=0; form_paginacao.submit()' style='cursor: hand'>"
 End If
 Response.Write "</form>"
End If
objCon.Close
%>

</font>
</body>
</html>

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.