Foros del Web » Creando para Internet » HTML »

<BR> Automatico en textarea

Estas en el tema de <BR> Automatico en textarea en el foro de HTML en Foros del Web. hola, he puesto un libro de visitas en mi web. Tiene un campo para el nombre y otro para el comentario. el comentario es un ...
  #1 (permalink)  
Antiguo 13/02/2007, 03:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 1
<BR> Automatico en textarea

hola, he puesto un libro de visitas en mi web.
Tiene un campo para el nombre y otro para el comentario.
el comentario es un textarea.

El tema es que si "escribes demasiado" en una misma palabra, sin darle a espacio al darle a aceptar/enviar se carga en una tabla y me destroza, queda fea de cojones.

Lo que quería seria que no se pueda meter mas de "x" caracteres seguidos sin dale a espacio. O que al llegar a x que realice un <br>.

No se si existe alguna propiedad de textarea en html, o si no posiblemente en javascrip o php se pueda.

pa que funcione tengo un chanchullo con 3 paginas
dejo el codigo mio.
este es de la pagina principal
Código:
<HTML>
 <head>
 	<link rel="stylesheet" type="text/css" href="../css.css" >
 	<script language="JavaScript">
<!-- 

function verificar()
{
	if(comentarios.nombre.value.replace(/ /g, '') == '')
	{
		alert("No se puede dejar el campo nombre vacio");
		comentarios.nombre.focus();
		comentarios.nombre.select();
		return false;
	}
	else
	{
		if(comentarios.comentario.value.replace(/ /g, '') == '')
		{
			alert("No se puede dejar el campo comentario vacio");
			comentarios.comentario.focus();
			comentarios.comentario.select();
			return false;
		}
		else
		{
		comentarios.submit()
		}
	}
}
-->
</script>
 </head>
 <body>
 <table width="700" border="1" cellpadding="0" cellspacing="0" class="texto" align="center">
<tr align="center">
	<td width="200"><h2 style="margin-bottom: 0;"><b>Nombre<b></h2></td>
	<td width="500"><h2 style="margin-bottom: 0;"><b>Comentario<b></h2></td>
</tr>
<?
$rf=fopen("visitas.dat","r");
$lec=fgets($rf);
$esnom=1;
while($lec!="")
{
	if($esnom==1)
	{
		echo "<tr><td class='nombre' width='200' align='center'>".$lec."</td><td class='comentario' width='500'>";
		$esnom=0;
	}
	else
		if ($lec=="1111\r\n")
		{
			echo "</td></tr>";
			$esnom=1;
		}
		else
		{
			echo $lec."<br>";
		}
$lec=fgets($rf);
}
?>
</table>
<div align="center">
<br>
<form action="escribirvisita.php" name="comentarios">
 Nombre
 <br> 
 <input type="text" name="nombre" size="30" maxlength="30">
 <br>
 <br>
 Comentario
 <br>
 <textarea name="comentario" cols="30" rows="7"></textarea>
 <br>
 <br>
 <input type="button" value="ACEPTAR" onclick="verificar()">
</form>
</div>
</body>
</html>
ahora el escribirvisita.php
Código:
<?
$rf=fopen("visitas.dat","a");
$nom1=$_GET["nombre"];
$com=$_GET["comentario"];
fwrite($rf,$nom1."\r\n");
fwrite($rf,$com."\r\n");
fwrite($rf,"1111"."\r\n");
fclose($rf);
header("location:librovisitaspagina.php");
?>
el archivo visitas.dat solo es donde se guardan las cosas

lo dicho si alguien sabe hacerlo en javascript o php,si es necesario moverme el post al foro indicado.

saludos
lo siento por la chapa
  #2 (permalink)  
Antiguo 16/02/2007, 14:07
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 7 meses
Puntos: 8
Re: <BR> Automatico en textarea

Buff. lo único que se me ocurre es que compruebes lo que se ha escrito en cada KEYUP, llamando a una función en la que uses el método "lastIndexOf()" para que te devuelva la última posición de un espacio en blanco dentro de la cadena:

1) si no hay espacio en blanco, y la longitud de la cadena excede de la que le des, borras el último carácter escrito o insertas un "&nbsp;".

2) si hay un espacio en blanco obtienes la cadena a la derecha de éste y con ella procedes del mismo modo.

También te puede interesar hacer la comprobación cuando el TEXTAREA ha perdido el foco... porque si han hecho un copiar/pegar... pero vamos según necesites, sin paranoyas.

http://www.w3schools.com/jsref/jsref_lastIndexOf.asp

Un salu2
  #3 (permalink)  
Antiguo 16/02/2007, 14:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 163
Antigüedad: 19 años, 11 meses
Puntos: 2
Re: <BR> Automatico en textarea

amigo, en php existe la funcion wordwrap que hace todo el trabajo por ti

http://www.php.net/manual/es/function.wordwrap.php

no se si te servirá
  #4 (permalink)  
Antiguo 16/02/2007, 20:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 130
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: <BR> Automatico en textarea

hola, gracias a los 2,
pero con wordwrap lo parte en el momento que cuenta los "x" caracteres, y te puede partir una palabra, lo idoneo seria que al llegar a "x" caracteres lo partiera en le espacio anterior.

de todas formas como tendria que aplicarlo al codigo que os he dixo.
que seria mejor, aplicarlo a la pagina que lee (que al leer ejecute un wordwrap) o al que escribe(que lo guarde directamente ya partido).

gracias
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 22:52.