1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

desformatação de tabela em IE

Discussão em 'Web Development' iniciada por fil79, 17 de Março de 2009. (Respostas: 17; Visualizações: 1171)

  1. fil79

    fil79 Power Member

    Boas

    tenho um script que lista alguns campos de uma tabela (campos preenchidos pelos clientes)
    para listar esses campos useio uma tabela mas há uns dias deparei-me com algo que nunca tinha acontecido:

    um dos utilizadores usou "/"(slash ) ao inserir um link e isso desformatou completamente a tabela estando esse registo completemante fora do sitio, mas somente no INternet Explorer...poderia usar uma função em php para substituir o slash por outro simbolo mas depois o link deixaria de funcionar..alguém me sabe dizer porque se comporta assim a tabela no IE?

    exemplo do código:

    Código:
     
    HTML:
    <table width='100%' border='0'>
           <tr><td style='padding-left: 80px;'width='100%' >".$interno."</td></tr>
    </table>
     
     
    CSS:
     
    body
    {
    margin: auto;
    }
     
     
    


    Desde já agradeço
     
  2. K0mA

    K0mA Power Member

    <?php echo htmlentities ($interno); ?> talvez resolva.
     
  3. fil79

    fil79 Power Member

    tentei assim e não resolveu....se usar o str_replace não desformata, mas o link deixa de funcionar também
     
  4. p3dro

    p3dro Power Member

    Consegues mostrar qual é o código html gerado por esse código?
     
  5. fil79

    fil79 Power Member

    Código:
    <table border='0' width='80%'>
          <tr><td align='right' width='40%'><b>Pedido nº:</b></td><td>1111</td></tr>
          <tr><td align='right'><b>Nome:</b></td><td>manuel</td></tr>
          <tr><td align='right'><b>Empresa:</b></td><td>alguma empresa</td></tr>
          <tr><td align='right'><b>Contacto:</b></td><td>999999999</td></tr>
          <tr><td align='right'><b>Assunto:</b></td><td>Queremos que insira tanto faz tanto faz.Aqui tem o link do site:  [URL]http://www.algo.com </td></tr[/URL]>
          <tr><td align='right'><b>Data:</b></td><td>10 de Março de 2009</td></tr>
     </table>
     
    

    este é o registo que se encontra desformatado...os outros registos encontram-se perfeitos...como referi se retirar as slashes fica bem formatada!!
     
  6. p3dro

    p3dro Power Member

    Por esse código não consigo visualizar qualquer má formatação, tenta colocar o código completo dessa tabela e um screenshot do teu IE...
     
  7. The Dealer

    The Dealer Power Member

    Aproveito esta thred para perguntar o seguinte:

    Alguem me sabe explicar porque é que o código seguinte (cabeçalho de uma tabela) no Firefox não apresenta a cor do fundo, mas no IE sim ?

    PHP:
    print("<table width=\"100%\" align=left border=1>");
    print(
    "<tr><td width=\"20%\" bgcolor=\"FFFF00\">N_Aluno</td><td width=\"20%\" bgcolor=\"FFFF00\">Nome</td><td width=\"60%\" bgcolor=\"FFFF00\">Curso</td><td width=\"60%\" bgcolor=\"FFFF00\">Email</td><td width=\"50%\" bgcolor=\"FFFF00\">Numero Telefone</td><td width=\"80%\" bgcolor=\"FFFF00\">Exame #1</td><td width=\"80%\" bgcolor=\"FFFF00\">Exame #2</td><td width=\"80%\" bgcolor=\"FFFF00\">Nota Final</td></tr>");
     
    Última edição: 19 de Março de 2009
  8. geoblast

    geoblast Power Member

    Experimenta colocando o cardinal (#), assinalados a vermelho
     
    Última edição: 17 de Março de 2009
  9. p3dro

    p3dro Power Member

    falta-te o # em bgcolor=\"FFFF00\", ficaria bgcolor=\"#FFFF00\"
     
  10. fil79

    fil79 Power Member


    Código:
     
    <fieldset>
    <table border='0' width='80%'>
          <tr><td align='right' width='40%'><b>Pedido nº:</b></td><td>942</td></tr>
          <tr><td align='right'><b>Nome:</b></td><td>nome da pessoa</td></tr>
          <tr><td align='right'><b>Empresa:</b></td><td>alguma há-de ser</td></tr>
          <tr><td align='right'><b>Contacto:</b></td><td>91111111</td></tr>
          <tr><td align='right'><b>Assunto:</b></td><td>Aqui tem o link do      site:http://www.algo....</td></tr>      
          <tr><td align='right'><b>Data:</b></td><td>12 de Março de 2009</td></tr>
          <tr><td align='right'><b>Hora:</b></td><td>23:24</td></tr>
    <tr><td align='right'></td>
    <td align='right'><a href='pag1.php?idPedido=942'><img src='imagens/chave.jpg' border='0' alt='Reabrir o pedido nº 942'></a>&nbsp;&nbsp;&nbsp;<a href=pag2.php?<img src='imagens/imag1.jpg' border='0' width='30' height='30' </a>&nbsp;&nbsp;&nbsp;<a href='pag3.php'><img src='imagens/relatorio.jpg' border='0'></a></td></tr>
      
      </table>
      </fieldset>
     
     
    
    para salvaguardar a privacidade ocultei as informações, o caso do pedido em que no campo assunto se encontra o link, passa para além do fieldset:


    [​IMG]
     
    Última edição: 18 de Março de 2009
  11. p3dro

    p3dro Power Member

    Pois, o problema é que o URL é grande e como não tem espaços não faz a quebra de linha, uma possível solução é alterares o teu fieldset para algo deste tipo:

    Código:
    <fieldset style="overflow: auto;">
     
  12. unsilent

    unsilent Power Member

    Não sei se foi erro ao transcreveres mas tens ai duas tags que não estão fechadas:
    PHP:
    <a href=pag2.php?<img src='imagens/imag1.jpg' border='0' width='30' height='30' </a>
     
  13. fil79

    fil79 Power Member


    assim aparecem dois scrolls que evita que os td´s saiam do filedset...já é um começo...acontece que o pedidp ainda está encostado ao lado esquerdo tal como está na imagem, apesar de ter width='50%'...ainda não se encontra totalmente igual aos outros




    foi erro ao transcrever pois editei o html de modo a preservar alguma privacidade
     
  14. p3dro

    p3dro Power Member

    Para fixares o tamanho da tabela penso que basta isto
    Código:
    <table border='0' width='80%'  style="table-layout: fixed;">
    Em relação ao teu problema dos urls longos, podes usar uma coisa que é o linkify text, se procurares pelo Google vais encontrar muitas coisas.

    Dá uma vista de olhos neste exemplo, basicamente o que faz é ir buscar todos os endereços (http e ftp) sem o <a> e constrói o <a>, porém se o tamanho do link for superior a X caracteres, "corta", caso contrário, permanece o mesmo texto.

    Código:
    <?php
    function FixUrl($url, $max=25) {
      $url_fixed=$url;
      if (strlen($url) > $max){ $url_fixed = substr($url, 0, $max)."..."; }
      return "<a href='$url'>$url_fixed</a>";
    }
    function linkify_text($linktext) {
      return preg_replace('@\b(ht|f)tp[s]?://[^\s\n\r\t\<\>]+(?=[\b\s\n\r\t\<])@ie',"FixUrl(\"\\0\")", $linktext); 
    }
    ?>
    
    <html>
    <body>
    <fieldset>
    <table border='0' width='80%'  style="table-layout: fixed;">
        <tr><td align='right' width='40%'><b>Pedido nº:</b></td><td>942</td></tr>
        <tr><td align='right'><b>Nome:</b></td><td>nome da pessoa</td></tr>
        <tr><td align='right'><b>Empresa:</b></td><td>alguma há-de ser</td></tr>
        <tr><td align='right'><b>Contacto:</b></td><td>91111111</td></tr>
        <tr><td align='right'><b>Assunto:</b></td>
          <td>
            <?php echo linkify_text("Aqui tem o link do site:http://www.correiodamanha.pt/noticia.aspx?contentid=67D59FEA-4A49-4DB6-A9D9-ACC9B799694F&channelid=00000213-0000-0000-0000-000000000213 isto é outro link, mas fica igual http://www.google.pt/ <a href='http://www.slbenfica.pt'>este link não é alterado</a>");?>
          </td>
        </tr>
        <tr><td align='right'><b>Data:</b></td><td>12 de Março de 2009</td></tr>
        <tr><td align='right'><b>Hora:</b></td><td>23:24</td></tr>
    <tr><td align='right'></td>
    <td align='right'><a href='pag1.php?idPedido=942'><img src='imagens/chave.jpg' border='0' alt='Reabrir o pedido nº 942'></a>&nbsp;&nbsp;&nbsp;<a href=pag2.php><img src='imagens/imag1.jpg' border='0' width='30' height='30' ></a>&nbsp;&nbsp;&nbsp;<a href='pag3.php'><img src='imagens/relatorio.jpg' border='0'></a></td></tr>
      </table>
      </fieldset>
    </body>
    </html>
    Aquela expressão regular adaptei deste site


    Esta linha irá converter o texto para link
    PHP:
    <?php echo linkify_text("Aqui tem o link do site:http://www.correiodamanha.pt/noticia.aspx?contentid=67D59FEA-4A49-4DB6-A9D9-ACC9B799694F&channelid=00000213-0000-0000-0000-000000000213 isto é outro link, mas fica igual http://www.google.pt/ <a href='http://www.slbenfica.pt'>este link não é alterado</a>");?>
     
    Última edição: 19 de Março de 2009
  15. fil79

    fil79 Power Member

    muito obrigado...vou averiguar todas essas informações!!
     
  16. The Dealer

    The Dealer Power Member

    De facto faltava-me o #. Mas porque é que eu mudei para align=center, e continua-me alinhado à esquerda?
     
  17. fil79

    fil79 Power Member

    podes fazer isso usando CSS:

    Código:
     
     
    <style type="text/css">
    .td
    { 
    text-align: center;
    }
     
    </style>
     
     
     
    //e depois no php:
     
     
    print("<table width=\"100%\"   border='1'>");
     
    print("<tr><td width=\"20%\" bgcolor=\"FFFF00\" class=\"td\"...........................
     
     
    


    P.s.-Para a próxima abre um tópico novo de modo a que o bom funcionamento do fórum seja preservado! e evitam-se salganhadas ;)
     
  18. fil79

    fil79 Power Member



    style="table-layout: fixed;
    assim não desformata a tabela..e a outra função é muito boa...já a apliquei na variável para o caso de alguém voltar a inserir um link...muito obrigado ;)
     

Partilhar esta Página