Foros del Web » Creando para Internet » HTML »

tablas que se rompen

Estas en el tema de tablas que se rompen en el foro de HTML en Foros del Web. hola, soy administrador de un foro y tengo el problema de que algunos usuarios escriben cadenas de texto demasiado largas y cuando se visualiza el ...
  #1 (permalink)  
Antiguo 12/04/2003, 08:45
 
Fecha de Ingreso: enero-2002
Ubicación: Bogotá
Mensajes: 23
Antigüedad: 22 años, 9 meses
Puntos: 0
tablas que se rompen

hola, soy administrador de un foro y tengo el problema de que algunos usuarios escriben cadenas de texto demasiado largas y cuando se visualiza el mensaje no se cortan sino que estiran el ancho de la tabla.

solo un ejemplo de lo que hacen los usuarios de mi foro para ver como funciona acá...

ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  #2 (permalink)  
Antiguo 12/04/2003, 08:49
 
Fecha de Ingreso: enero-2002
Ubicación: Bogotá
Mensajes: 23
Antigüedad: 22 años, 9 meses
Puntos: 0
hmmm aqui parece que lo separan por PHP, pero, existe alguna forma de hacerlo con CSS o con HTML?
  #3 (permalink)  
Antiguo 12/04/2003, 08:54
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Buenas,


hay distintas formas de controlar eso, desde el lado cliente y desde el servidor.


Yo soy más amiga de controlarlo desde cliente pues a veces el código "controlador" puede equivocarse y romper secuencias de caracteres que no debían romperse pero eso se vería yá una vez insertado en la base de datos al recuperarlo.

Hice un script de lado cliente (en javascript) para esto, pero seguramente necesitaría alguna consideración especial.

¿Qué foro estás usando? ¿lo programaste tu o es uno de esos de distribución libre instalado en tu server??
  #4 (permalink)  
Antiguo 12/04/2003, 08:56
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Cita:
Mensaje Original por elFreak
hmmm aqui parece que lo separan por PHP, pero, existe alguna forma de hacerlo con CSS o con HTML?
No, con sólo html o css no se puede
  #5 (permalink)  
Antiguo 12/04/2003, 10:03
 
Fecha de Ingreso: enero-2002
Ubicación: Bogotá
Mensajes: 23
Antigüedad: 22 años, 9 meses
Puntos: 0
hola, mira.. el foro lo programé yo mismo para mi sitio... puedes ver un ejemplo de lo que está pasando AQUI

podría hacerlo cortando directamente por coldfudion pero preferí hacerlo en el cliente por la misma razón que dices tú... así que me serviría bastante ese javascript que tienes.. no tendría problema en adaptarlo si fuera necesario...

gracias de antemano,
juan diego velasco
  #6 (permalink)  
Antiguo 12/04/2003, 10:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
OK, mira, tal como lo tengo hecho contempla la posibilidad de incluír código fuente (y que lo respete sin romperlo) y la inserción de código para crear links y eso (como en estos foros)


Como veo que no usas smilies ni inserción de imágenes ni tus usuarios van a insertar código fuente he quitado las líneas que no te interesan. Sólo he dejado que se contemplen las secuencias de caracteres que sean una dirección (URL)

Hay una variable que se llama palabrota. Ahí deberás dar el valor máximo que quieras permitir a las palabras. En el ejemplo está en 10.

Código PHP:
<script language="Javascript">
//Script por tunait
function pepe(texto2,donde)
{
pUrl = /^https?://[w.]+/
var 
palabrota 10
palabras 
texto2.split(/s/)

largo palabras.length
for(m=0;m<largo;m++)
    {
    if(
palabras[m].length palabrota)
        {
        if (
pUrl.test(palabras[m]))
            {continue}
            
texto3=palabras[m].substr(0,palabrota)+" "
        
for(h=palabrota;h<palabras[m].length;h+=palabrota)
            {
            
texto3+=palabras[m].substr(h,palabrota)
            }
        
texto2=texto2.replace(palabras[m],texto3)
        
donde.value=texto2
        pepe
(texto2,donde)
        
//*************************************************    
        
}
    }
}
</script> 
Si quieres que se revise la longitud mientras se escribe en el textarea le pones un onKeyUp="pepe(this.value,this)"

Si quieres que te lo revise al final le pides un onBlur="pepe(this.value,this)"


Te sugiero si escoges que verifique mientras se escribe en el textarea que llames a la función en ambos eventos

<textarea onKeyUp="pepe(this.value,this)" onBlur="pepe(this.value,this)" name="mensaje" cols="90" rows="10"></textarea>


Yá me dirás si te sirvió

saludos

Última edición por tunait; 12/04/2003 a las 10:42
  #7 (permalink)  
Antiguo 12/04/2003, 10:44
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
No te servirá el código de arriba. El pinche foro este sigue quitando las \.

Ahí te lo cuelgo en mi servidor para que puedas copiar el código original.
  #8 (permalink)  
Antiguo 12/04/2003, 10:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Lo dejé en http://www.tunait.com/pruebas/controlpalabraslargas.htm

Saca el código fuente de ahí mismo
  #9 (permalink)  
Antiguo 12/04/2003, 11:22
 
Fecha de Ingreso: enero-2002
Ubicación: Bogotá
Mensajes: 23
Antigüedad: 22 años, 9 meses
Puntos: 0
hola tunai, acabo de bajar el código, lo voy a revisar con cuidado y lo adaptaré seguramente para mi caso, luego te diré como me fue... muchas gracias,

juan diego
  #10 (permalink)  
Antiguo 12/04/2003, 18:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Personalmente .. este tipo de control de datos que van a parar a una BD u otro médio de almacenamiento en el servidor .. prefiero controlarlos en el servidor .. Pues no es un error sino algo deliberado por parte del usuario .. Por ende, no cargo mas el código que le envio al cliente con rutinas javascript que si van a "mala leche" el usuario .. va a poder igualmente saltarse dicha validación javascript ..

Depende del lenguaje de programación del lado del cliente que uses .. (parece que CoolFusion?) .. lo puedes controlar mas o menos facil ...

Por ejemplo en PHP es tan solo aplicar la función:
wordwrap(cadena,nºcaracteres que consideres como palabra demasiado larga ..)
(bueno, tiene mas parámetros opcionales de control .. como que caracter de salto de línea va a usar a la hora de "partir" la cadena origen .. y alguno mas)

Te recomendaría que pese que uses la versión javascript que te propne tunait .. implementes el mismo algoritmo en tu lenguaje de programación del lado del servidor que use "por si a caso" .. Recuerda que lo que "manda" siempre es la validación en el servidor .. Las validaciones de datos "javascirpt" están bien para ahora "ancho de banda" entre que datos van al servidor y datos van al cliente si hay algun error ..

Un saludo,

PD: jeje por eso me gusta PHP .. muchas "taréas" cotidianas ya estan "resumidas" en una o unas pocas funciones ...
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 23:12.