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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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

    ×