Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal sou nova nova no fórum estudante de TI fiz o cadastro para sanar algumas dúvidas que possam surgir assim colaborando
para meu aprendizado e maior conhecimento.
Vamos a dúvida tenho um sistema upload que é para mostrar ali imagens e texto quando quiserem ver mais clikam no link ai vão para a página mostra texto.php só que o texto ta todo largão não fica com reticência e na página mostra texto ta todo feio não ta arrumadinha direitinho.
Segue abaixo:
Mostra
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$imagem['texto'];"</td>";
echo "<br/>";
echo'<div><br> //texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">'.substr("Ver mais", 0,65)."...".'</a></tr>
<div>';
}
}
Mostra texto.php
if($conta <= 0){
echo '<h2 align="center">Nenhuma Imagem Postada</h2>';
}else{
while($linha = pg_fetch_array($sql)){
echo
'
<div id="img" align="center">
<img src="Imagens/'.$linha['img'].'" width="246" heigth="118" title="'.$linha['id'].'"><br>
</div>
';
echo "<br/>";
echo "<center>"."<b>".$linha['titulo'];
echo "<br/>";
echo "<br/>";
echo "<center>"."Curso:".$linha['disciplina']."<br>" ;
echo "<br/>";
echo "<justify>".$linha['texto'] ; //só arrumar que ta todo espichado e em negrito queria tipo como no html com paragrafos arrumado
echo "<br/>";
}
}>
Boa tarde Mel Nunes,
Se entendi bem, você precisa recortar o texto e comparar o tamanho de cada texto a ser apresentado, se a quantidade de caracteres ultrapassar a que você considera, então você inclui as reticencias.
Ex:
Vou considerar que a quantidade máxima para cada texto a ser exibida, e não vai ficar 'quebrado' na tela é 150 caracteres.
$texto = substr($linha['texto'], 0, 150) // Recorta texto para exibição
if (strlen($linha['texto']) > 150) $texto .= '...'; // Caso exista mais de 150 caracteres, então insere reticencias
echo "<justify>".$texto ; //só arrumar que ta todo espichado e em negrito queria tipo como no html com paragrafos arrumado
Como acrescento isso no meu código ali para dar certinho :)
São duas páginas diferentes primeira exibição texto pequeno com ... e clica em ver mais e vai para a página com todo texto e informação.
Alterei o primeiro código que você enviou, que é responsável por criar os textos para exibir a opção "ver mais"
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$imagem['texto'];"</td>";
echo "<br/>";
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição
if (strlen($imagem['texto']) > 65) $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . ' <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';>
Alterei o primeiro código que você enviou, que é responsável por criar os textos para exibir a opção "ver mais"
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$imagem['texto'];"</td>";
echo "<br/>";
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição
if (strlen($imagem['texto']) > 65) $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . ' <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';
Mas ai está funcionando normal é acima desse ver mais tem um texto e ele está todo espichado queria por reticências. Por exemplo, tenho a esquerda uma imagem a direita titulo e um texto espichado que queria por reticencias e um ver mais que vai para página com todo texto.
Ha desculpe, deve aplicar o mesmo conceito então para o código de cima
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição
if (strlen($imagem['texto']) > 65) $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
echo "<br/>";
//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . ' <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';
Fiz pequenos ajustes em outros locais do código também, mas você precisa dar uma olhada na estrutura HTML para o resultado não sair bagunçado, se o HTML não estiver correto, tua página também pode 'Quebrar'.
Teste agora com esse novo modelo.
>
Ha desculpe, deve aplicar o mesmo conceito então para o código de cima
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição
if (strlen($imagem['texto']) > 65) $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
echo "<br/>";
//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . ' <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';
Fiz pequenos ajustes em outros locais do código também, mas você precisa dar uma olhada na estrutura HTML para o resultado não sair bagunçado, se o HTML não estiver correto, tua página também pode 'Quebrar'.
Teste agora com esse novo modelo.
Funcionou só que o ver mais ficou lá encima não abaixo do texto. Tipo ta tudo central o ver mais foi lá para o topo esquerdo mas ta funcionando. Me ajuda organizar para o ver mais ficar abaixo do texto.
Para que o ver mais abaixo basta inserir um <br> ou colocar dentro de <div>ver mais</div>
Ex:
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição
if (strlen($imagem['texto']) > 65) $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
echo "<br/>";
//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . ' <br><br><span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';
Teste agora
É interessante você colocar o código completo, para ver se não tem problema com o código html
>
Para que o ver mais abaixo basta inserir um <br> ou colocar dentro de <div>ver mais</div>
Ex:
echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição
if (strlen($imagem['texto']) > 65) $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
echo "<br/>";
//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . ' <br><br><span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';
Teste agora
É interessante você colocar o código completo, para ver se não tem problema com o código html
Bom consegui era um <td> que tinha que por ali do lado da div, para o ver mais ficar na tabela. Agora preciso arrumar o segundo código mostra texto para o texto da notícia ficar organizado.
Mas qual o problema com o script que exibe o texto completo?
Mas qual o problema com o script que exibe o texto completo?
O problema é que o texto fico largo enchendo toda página.
Tipo assim:
TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO
E queria que ficasse:
TEXTO TEXTO TEXTO
TEXTO TEXTO TEXTO
TEXTO TEXTO TEXTO
Tipo como fazemos no html que colocamos <p> para novo paragrafo e br e tal e deixamos arrumado não todo espalhado na tela.
Entendi, nesse sentido você pode colocar uma div com tamanho fixo, dessa forma o texto fica mais organizado, tem diversas formas de se fazer isso, mas uma deles segue abaixo:
Mostra texto.php
if($conta <= 0){
echo '<h2 align="center">Nenhuma Imagem Postada</h2>';
}else{
while($linha = pg_fetch_array($sql)){
echo
'
<div id="img" align="center">
<img src="Imagens/'.$linha['img'].'" width="246" heigth="118" title="'.$linha['id'].'"><br>
</div>
';
echo "<br/>";
echo "<center>"."<b>".$linha['titulo'];
echo "<br/>";
echo "<br/>";
echo "<center>"."Curso:".$linha['disciplina']."<br>" ;
echo "<br/>";
echo "<div style='padding:10px;width: 500px;'>".$linha['texto'] . "</div>"; //só arrumar que ta todo espichado e em negrito queria tipo como no html com paragrafos arrumado
echo "<br/><br/>";
}>
Entendi, nesse sentido você pode colocar uma div com tamanho fixo, dessa forma o texto fica mais organizado, tem diversas formas de se fazer isso, mas uma deles segue abaixo:
Mostra texto.php
if($conta <= 0){
echo '<h2 align="center">Nenhuma Imagem Postada</h2>';
}else{
while($linha = pg_fetch_array($sql)){
echo
'
<div id="img" align="center">
<img src="Imagens/'.$linha['img'].'" width="246" heigth="118" title="'.$linha['id'].'"><br>
</div>
';
echo "<br/>";
echo "<center>"."<b>".$linha['titulo'];
echo "<br/>";
echo "<br/>";
echo "<center>"."Curso:".$linha['disciplina']."<br>" ;
echo "<br/>";
echo "<div style='padding:10px;width: 500px;'>".$linha['texto'] . "</div>"; //só arrumar que ta todo espichado e em negrito queria tipo como no html com paragrafos arrumado
echo "<br/><br/>";
}
Ali dentro da div to alterando o que mais eu quero, valeu por dedicar seu tempo para me ajudar muita obrigada.
Só uma coisinha quando texto é muito grande ele fica todo grudado teria como por parágrafos espaços.
Boa tarde Mel Nunes,
Se entendi bem, você precisa recortar o texto e comparar o tamanho de cada texto a ser apresentado, se a quantidade de caracteres ultrapassar a que você considera, então você inclui as reticencias.
Ex:
Vou considerar que a quantidade máxima para cada texto a ser exibida, e não vai ficar 'quebrado' na tela é 150 caracteres.
$texto = substr($linha['texto'], 0, 150) // Recorta texto para exibição
if (strlen($linha['texto']) > 150) $texto .= '...'; // Caso exista mais de 150 caracteres, então insere reticencias
echo "<justify>".$texto ; //só arrumar que ta todo espichado e em negrito queria tipo como no html com paragrafos arrumado