Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
gabrielbe

Paginação no IE

Recommended Posts

Boa tarde!

To com um problema na paginação de resultados..

Ela funciona corretamente no Firefox e no Chrome..mas no IE ela ultrapassa o limite da div e vai página a fora =S

Como posso ajeitar isso?

segue o código:

pag. q contem a paginação


<?php
include ('conexao.php');
//paginação;

if(isset($_GET["pag"]))
$pag = $_GET["pag"];
else
$pag = 1;

$quanti = 8; // mude para 8 para mostrar 8 registros por página.
$inicio = ($pag * $quanti) - $quanti;


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">


<title></title>

<div id="conteudo_prod">
<br><span class="titulos">Produtos</span> <?php

//Faz a consulta SQL
//conexão com o servidor
$conexao = mysql_connect("localhost", "root", "");
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti", $conexao);

// Exibimos os nomes dos produtos e seus repectivos valores
while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];?>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left">

<div>
<tr>
<td bgcolor="#DAE0BE" width="10px"></td>
<td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p>
<?php echo "<img src=$img>"?><br><br>
<?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?>


<td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td>
<td bgcolor="#FFFFFF" width="10px"></td>



</tr>

<tr><td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td></tr>



</table>


<?php } ?>
<div id="paginacao"> <?php
// seleciona a id do produto
$sql3 = "select cod_produto from produto where cod_categoria='$id'";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);


for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='produtos.php?pag=$i&id=$id'>";
echo "$i </a>   ";
}

}

?>
</div>
</div>


</body>
</html>

css


#conteudo_prod{
background-color:#FFFFFF;
position: relative;
left: -10px;
top: -14px;;
width: 633px;
right: auto;
height: 590px;
_left:-10px;


}

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá de novo amigo,

podes anexar aqui uma screen do problema? no IE para melhor ajudar...mas julgando por cima... acho q teria que por um IE hack no css para corrigir o problema no IE

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

estou postando uma screen... a paginação é para listas 8 produtos por página..

mas ele só lista 4

e a paginação ali embaixo funciona direito...

só q ele mostra os produtos listados como se fossem uma linha só, nao faz a quebra da linha..

nao sei se me entendeu?

post-854628-13884959138065_thumb.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste assim:

$num = 0;

while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];?>

if($num % 4 == 0)
sua tabela de produtos aqui
$num++;

} fecha while

isso deveria apresentar 4 produtos, quebrar alinha e aprsentar mais 4 dando total de 8 por pagina.

só uma coisa amigo, se acostume nunca picotar seu PHP.

abra a tag php <?php

e dentro dela.. coloque sua tabela com echo na frente. lembrando que dentro do echo todas as aspas devem ser simples '

e finalize a tag ?>

tambem sua conexao com o banco, acostume-se a criar um conexao.php contendo a conexao com o banco.. e na sua pagina coloque:

include 'conexao.php';

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Ok, fiz o que você sugeriu mas não adiantou..continuou o mesmo problema..

=S

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ok, fiz o que você sugeriu mas não adiantou..continuou o mesmo problema..

=S

nao é possivel.. amigo.. aqui eu tenho um e-commerce que desenvolvi. que na pagina principal eu apresentro 7 produtos por pagina. de 3 em 3 colunas. e assim funcina tranquilo.

sugiro que você de uma otimizada no seu codigo php.

nao tem necessidade de abrir varias vezes a tag e fchar só para usar o html no meio.

você pode usar o html dentro do php com o echo

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Faria diferença se eu mudar td o código cm você está dizendo?

A sugestão q você deu primeiramente, eu tentei fazer e o código ficou assim...



<?php
include ('conexao.php');
//paginação;

if(isset($_GET["pag"]))
$pag = $_GET["pag"];
else
$pag = 1;

$quanti = 8; // mude para 8 para mostrar 8 registros por página.
$inicio = ($pag * $quanti) - $quanti;


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">


<title></title>

<div id="conteudo_prod">
<br><span class="titulos">Produtos</span> <?php

//Faz a consulta SQL
//conexão com o servidor
$conexao = mysql_connect("localhost", "root", "");
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti", $conexao);

// Exibimos os nomes dos produtos e seus repectivos valores
$num = 0;

while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];
if($num % 4 == 0) ?>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left">

<div>
<tr>
<td bgcolor="#DAE0BE" width="10px"></td>
<td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p>
<?php echo "<img src=$img>"?><br><br>
<?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?>


<td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td>
<td bgcolor="#FFFFFF" width="10px"></td>



</tr>

<tr><td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td></tr>



</table>


<?php $num++; } ?>
<div id="paginacao"> <?php
// seleciona a id do produto
$sql3 = "select cod_produto from produto where cod_categoria='$id'";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);


for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='produtos.php?pag=$i&id=$id'>";
echo "$i </a>   ";
}

}

?>
</div>
</div>


</body>
</html>

seria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assimm amigo:

fiz algumas alteraçoes que otimizam o codigo.

por exemplo você nao precisa de include da conexao la na paginaçao.

e você estava criando uma conexao la embaixo.

então tirei sua conexao e puxei aque estava na paginaçao para baixo.

acrescentei mais um if($num % 4 == 0) e mandei apresentar uma </tr>

coloquei toda sua tabela dentro de um echo dentro do php.

veja se assim funciona. estou me baseando no jeito que eu fiz o meu aqui que funciona.


<?php
//paginação;

if(isset($_GET["pag"]))
$pag = $_GET["pag"];
else
$pag = 1;

$quanti = 8; // mude para 8 para mostrar 8 registros por página.
$inicio = ($pag * $quanti) - $quanti;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">
<title></title>

<div id="conteudo_prod">
<br><span class="titulos">Produtos</span>
<table border='0' cellpadding='0' cellspacing='0' bgcolor='#DAE0BE' align='left'>
<?php
//Faz a consulta SQL
//conexão com o servidor
include ('conexao.php');
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti");

// Exibimos os nomes dos produtos e seus repectivos valores
$num = 0;

while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];
$nome=$row['nome'];
if($num % 4 == 0)
echo "

<div>
<tr>
<td bgcolor='#DAE0BE' width='10px'></td>
<td width='121px'><p><span class='textos'>$nome </span></p>
<img src='$img'><br><br>
<a href=\"detalhes.php?id=$idp target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>
<td width='14px' align='top' valign='top'><img src='recortes/produto_canto.jpg'></td>
<td bgcolor='#FFFFFF' width='10px'></td>
</tr>
<tr>
<td bgcolor='#FFFFFF' height='20px'></td>
<td bgcolor='#FFFFFF' height='20px'></td>
<td bgcolor='#FFFFFF' height='20px'></td>
<td bgcolor='#FFFFFF' height='20px'></td>";

$num++;
if($num % 4== 0)
echo "</tr>";
}
?>
</table>
<div id="paginacao">
<?php
// seleciona a id do produto
$sql3 = "select cod_produto from produto where cod_categoria='$id'";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);

for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='produtos.php?pag=$i&id=$id'>";
echo "$i </a>   ";
}
}
?>
</div>
</div>
</body>
</html>


Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Muito obrigado pela ajuda, mas mesmo assim não funcionou. Desse jeito só mostrou o primeiro produto de cada página.

Tanto no IE quanto no Firefox

Compartilhar este post


Link para o post
Compartilhar em outros sites

que estranho..

então volta como tava e tenta por isso aqui:


$num++;
if($num % 4== 0)
echo "</tr>";
} fecha while

no caso você teria dois if($num % 4 == 0).

um la em cima logo apos o while e um nofinal para fechar.

vou te mostrar meu código que funciona:



<div id="conteudo">
Lancamentos:
<table align="center">
<?php
include("conecta.php");

$sql = "select p.codigo,p.produto, p.quant, c.categoria, p.preco , p.descricao, p.destaque from produtos
as p inner join grupos as c on p.codgrupo = c.codigo where destaque='x' limit $inicio, $quanti";

$dados = mysql_query($sql);

$num = 0;

while ($linha = mysql_fetch_array($dados)) {
$codigo = $linha["codigo"];
$produto = $linha["produto"];
$descricao = $linha["descricao"];
$quantidade = $linha["quant"];
$categoria = $linha["categoria"];
$preco = $linha["preco"];
$precof = number_format($preco, 2, ',' , '.');
$destaque = $linha["destaque"];
$foto = "../../musicaGeralAdmin/produtos/" . $codigo . ".jpg";

$quebraNome = wordwrap($produto, 16, "<br />\n");
if($num % 3 == 0)
echo "<tr width='50%'>";
echo "<td><div id='produto'><a href='mostraProduto.php?cod=$codigo'><img src=$foto width=140 height=120></a><br/>";
echo "<div><br/><a href='mostraProduto.php?cod=$codigo'>$quebraNome <span>- Cód. $codigo</span></a></div></div><br/>";
echo "<div style='color:#f00;margin-left:20px;font-size:12pt'>R$ $precof</div><br/>";

$num++;
if($num % 3== 0)
echo "</tr>";
}

$sql3 = "select codigo from produtos";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);
for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='index.php?pag=$i'>";
echo "$i </a>   ";
}
}

// Libera o vetor $dados e fecha a conexão
mysql_free_result($dados);
mysql_close($conecta);
?>
</table>
</div>

olha uma screen do meu site. do codigo acima. foi um comércio eletrônico que desenvolvi para concluir meu 4 semestre na faculdade.

Veja que sao 3 produtos por coluna. só que o meu tava configurado para 9 produtos por pagina .. mas ali só tenho 7 em destaque.. porque havia tirado 2 produtos para teste.

repare que no meu codigo que eu estou usando:

if( $num % 3 == 0)

dua vezes.. para quebrar a coluna de 3 em 3 produtos.

Editado por dif

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

pois é..é exatamente o que eu queria..mas não da certo de jeito nenhum

=S

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

No firefoz agora funciona desse ultimo jeito que falamos, mas no IE ainda não

Compartilhar este post


Link para o post
Compartilhar em outros sites
No firefoz agora funciona desse ultimo jeito que falamos, mas no IE ainda não

o que é estranho... porque aqui no IE também funciona, assim como no chrome também.

realmente esta difícil arrumar isso :\ o IE tem muitas incompatibilidades...

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

também acho estranho..não to sabendo como arrumar isso...=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×