Foros del Web » Programando para Internet » PHP »

Contar renglones

Estas en el tema de Contar renglones en el foro de PHP en Foros del Web. Hola a todos!!! Les cuento que levanto desde la base de datos un campo donde hay descripciones de productos y quiero mostrarlas, pero con la ...
  #1 (permalink)  
Antiguo 30/05/2011, 20:58
 
Fecha de Ingreso: octubre-2009
Mensajes: 107
Antigüedad: 14 años, 5 meses
Puntos: 2
Contar renglones

Hola a todos!!! Les cuento que levanto desde la base de datos un campo donde hay descripciones de productos y quiero mostrarlas, pero con la siguiente característica:
Si hay más de 24 renglones, que se active una función de scroll; sino que se muestre el texto normalmente con un simple "echo $texto;".
El tema es que no se cómo hacer ya que los pasos que fui haciendo son los siguientes:
En la base de datos Mysql se guarda -mediante un textarea- las descripciones (sin ningún tipo de restricción en longitud ni nada).
Luego, hacía un strlen($texto) y, si era mayor a un número calculado a ojo (totalmente ineficiente), mostraba dicha descripción con scroll, imprimiéndola de la forma: "echo nl2br($texto);" para que me respete los saltos de línea que daba la persona que carga la descripción (ya que sin eso no los respetaba).
El tema es que no anda, por supuesto, porque strlen lo que hace es contar los caracteres y, por ejemplo, hay casos donde hay pocos caracteres pero están en forma de lista, por ejemplo:
"Comodo
Suave
Lindo
Ideal para tu hogar"
Y nunca se llega a lograr que el strlen de eso me de mayor que el número que puse, pero sin embargo, con tantos saltos de línea superaba el alto que yo quiero para que se vea dentro del div contenedor de la descripción (318 píxeles de alto).

Bueno, no se si me explico, la idea es que quisiera poder tratar de controlar las descripciones dentro del div de esa altura y, si supera la cantidad de renglones la misma, que se aplique una función que hace "scrolleable" el contenido.

Si necesitán más info o código me dicen y los posteo.

Muchas gracias y espero me puedan ayudar!!!
  #2 (permalink)  
Antiguo 30/05/2011, 22:38
Avatar de camsworksinc  
Fecha de Ingreso: julio-2008
Ubicación: Queretaro
Mensajes: 261
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Contar renglones

Porque no usas la propiedad de overflow de CSS en tu div?
Código HTML:
Ver original
  1. <div style='width:200px; height: 100px; overflow:auto'>
  2. bla
  3. bla
  4. bla
  5. </div>
Si el texto dentro del panel es mayor a la altura o ancho del panel, aparecen automaticamente las barras de scroll. Si es menor, entonces no aparecen.
__________________
¡Malditas computadoras que siempre hacen lo que les DIGO que hagan, no lo que QUIERO que hagan!
  #3 (permalink)  
Antiguo 31/05/2011, 11:28
 
Fecha de Ingreso: octubre-2009
Mensajes: 107
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Contar renglones

Cita:
Iniciado por camsworksinc Ver Mensaje
Porque no usas la propiedad de overflow de CSS en tu div?
Código HTML:
Ver original
  1. <div style='width:200px; height: 100px; overflow:auto'>
  2. bla
  3. bla
  4. bla
  5. </div>
Si el texto dentro del panel es mayor a la altura o ancho del panel, aparecen automaticamente las barras de scroll. Si es menor, entonces no aparecen.
Entiendo lo que me decís y sería útil pero yo estoy usando un javascript para scroll que se llama "easyscroll". Para aclarar un poco voy a poner código:
Código HTML:
<div id="descripcion">
if(strlen($texto) > 1500){ ?>
<div id="myContent">
<b>Descripción</b><br /><br />
<?php  echo nl2br($texto);
    ?>
</div>
</div>
<?php } else {echo '<b>Descripción</b><br /><br />'.nl2br($texto);} ?> 
el div "descipcion" tiene un ancho y alto fijo: 610px y 390px respectivamente.
Como uso para scrollear el texto el easyscroll.js y sólo quiero que aparezcan los botoncitos de "subir" y "bajar" cuando la descripción supera el alto del div (porque sino aparecen el subir y bajar siempre, y hay descripciones que no necesitan scrollearse), había hecho lo del strlen... pero claramente no es óptimo.
El div "myContent" se lo configura desde el easyscroll.js, por ejemplo, en la línea que dice:
Código HTML:
	// desired height of the container element (in pixels)
	var height = 318;
Fue la única que toqué (porque no entiendo mucho de javascript todavía), tan sólo para darle el alto del div "myContent" que es lo máximo que se puede ver el texto de la descripción sin scrollear.

No se si me explico, pero esto funciona en la mayoría de los casos, salvo cuando -quien carga las descripciones- hace una especie de lista con pocas palabras pero muchos saltos de líneas. Es ahí donde se ve todo mal.

Les muestro una imagen, para ver si se nota más de lo que hablo:

Ya lo verde de abajo es una especie de footer que delimita la página.

Bueno, ojalá haya aclarado un poco, y no todo lo contrario! Muchas gracias nuevamente!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:39.