Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Contador de caracteres en un Textarea con Php

Estas en el tema de Contador de caracteres en un Textarea con Php en el foro de Javascript en Foros del Web. Hola! Necesito ayuda con un archivo php que me muestra en un form los datos que tengo de un libro, traidos desde mysql, con el ...
  #1 (permalink)  
Antiguo 06/03/2012, 15:25
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 9 meses
Puntos: 0
Contador de caracteres en un Textarea con Php

Hola!
Necesito ayuda con un archivo php que me muestra en un form los datos que tengo de un libro, traidos desde mysql, con el fin de que el usuario los edite. Tengo dos textarea con contador de caracteres, pero no me funciona el contador, lo necesito porque si el usurio introduce mas texto de el debido, no me lo guarda en la base de datos, Necesito que el usuario vea la cantidad que introduce.

Aqui mi codigo:

<?php
//Valido que hayan iniciado sesion, si no redirije al inicio..
require("seguridad.php");
?>
<HTML>
<HEAD>
<title>Adminpast - Edici&oacute;n de Libro</title>
<link href="estilos.css" rel="stylesheet" type="text/css" media="screen"/>
<script>
function abrir(url) {
open(url,'','top=300,left=300,width=500,height=500 ') ;
}
</script>
</HEAD>

<BODY id="cuerpo" >
<?php
require ("menusecundario.php");
?>

<div id="general">

<!-- ************** SUPERIOR *****************-->

<div id="superior">
<div id="superior1">
<img id="titulo" width="350" height="90" src="images/banner1.png"/>
</div>

<div id="superior2">
<?php
require("fecha.html");
?>
<br>
<?php
require("hora2.html");
?>
</div>
</div>
<!-- ***********CUERPO CENTRAL ************-->
<div id="centralcompleto">


<!-- ***********COMIENZA FORMULARIO**********-->
<BR>
<h3 class="titulossecundarios" align="center">Introduzca el Id del libro:</h3><BR>
<FORM name="form6" action="editarlibro.php" method="POST" enctype="multipart/form-data">


<div id="tablaregistro">
<table width="300" border="0" cellspacing="20">
<tr>
<td width="300"><strong>Id:</strong></td>
<td width="300"><input name="id" type="text" size="30"></td>
</tr>

<tr>
<td colspan="2" class="sinoconoceid">Si no conoce el Id de Libro:</strong></td>
</tr>
<tr>
<td colspan="2"><a href="javascript:abrir('idlibro.php')">Consulta aqui</a></td>
</tr>
</table>
</div> <!--Fin del div de la tabla de registro-->

<BR>
<BR>

<div id="botones">
<table>
<tr>
<td><input type="submit" value="Consultar" name="consultar" onClick="validar()"></td>
<td><input type="reset" name="borrar" value="Borrar"></td>
<BR>
</tr>
</table>
<br><br>
<a class="volvermenu" href="libros.php">Volver al Menu Libros</a>
</div> <!--fin div botones-->
</FORM>

<!-- *********COMIENZA MUESTRA DE DATOS DE LIBROS********-->
<script language="JavaScript">

//Funcion para contar caracteres en textarea resumen
function contarresumen(form,name) {
//http://www.tuxi.com.ar/2007/04/29/contar-caracteres-en-textarea/
n = document.forms[form][name].value.length;
t = 250;
if (n > t) {
document.forms[form][name].value = document.forms[form][name].value.substring(0, t);
}
else {
document.forms[form]['result'].value = t-n;
}
}

//Funcion para contar caracteres en textarea descripcion
function contardescripcion(form,name) {
//http://www.tuxi.com.ar/2007/04/29/contar-caracteres-en-textarea/
n = document.forms[form][name].value.length;
t = 500;
if (n > t) {
document.forms[form][name].value = document.forms[form][name].value.substring(0, t);
}
else {
document.forms[form]['result2'].value = t-n;
}
}


<?php

//Conecto con la BD..
require("conexion.php");

if (isset($_POST['consultar'])){

//Definir variables..
$nomb=$_POST['id'];

if ($nomb !=""){
// Validar si el registro ya existe en la base de datos.
$validar= "SELECT * FROM libros WHERE id_libro='$nomb'";
$result=mysql_query($validar);

if (mysql_num_rows($result) == 0) {
echo "<script language='JavaScript'> alert ('Libro no existe')</script>";
}
else {
$actualizar=mysql_fetch_array($result);
echo"<FORM name='form7' action='libroactualizado.php' method='POST' enctype='multipart/form-data'>";
?>
<br>
<h3 class="titulossecundarios" align="center">Edite los datos necesarios del Libro:</h3>
<br>
<div id="tablaregistro">
<table width="300" border="0" cellspacing="15">

<tr>
<td>Nombre:</td>
<td><input name="nombre" type="text" id="nombre" size="30" value="<?php echo $actualizar[1] ?>"></td>
<td>Editorial:</td>
<td><input name="editorial" type="text" id="editorial" size="30" value="<?php echo $actualizar[5] ?>"></td>
</tr>

<tr>
<td>Autor:</td>
<td><input name="autor" type="text" id="autor" size="30" value="<?php echo $actualizar[7] ?>"></td>
<td>Precio BsF:</td>
<td><input name="precio" type="text" id="precio" size="15" value="<?php echo $actualizar[4] ?>"><img src="images/ayuda.jpg" width="22" height="22" title="El precio debe tener el formato: 00,00 y debe ir separado por coma. Ejemplo: 250,00"></td>
</tr>

<tr>
<td>Imagen:</td>
<td><input type="file" id="archivo" name="archivo"></td>
<td>Nº de P&aacute;ginas:</td>
<td><input type="text" name="paginas" id="paginas" size="15" value="<?php echo $actualizar[8] ?>"><img src="images/ayuda.jpg" width="22" height="22" title="El numero de paginas debe ser solo un numero entero, sin caracteres especiales. Ejemplo: 160"></td>
</tr>

<tr>
<td><input type="hidden" name="id" value="<?php echo $actualizar[0] ?>" ></td>
</tr>

<tr>
<td>Resumen:</td>
<td colspan='3'><textarea rows="10" cols="40" name="resumen" id="resumen" onKeyDown="contarresumen('form2','resumen')" onKeyUp="contarresumen('form2','resumen')"><?php echo $actualizar[2] ?></textarea><INPUT id=numeros name=result value=250 size="4" readonly="true"> <label for="nombre">Car&aacute;cteres permitidos: 250</label></td>
</tr>

<tr>
<td>Descripci&oacute;n:</td>
<td colspan='3'><textarea name="descripcion" id="descripcion" cols="60" rows="15" onKeyDown="contardescripcion('form2','descripcion' )" onKeyUp="contardescripcion('form2','descripcion')" ><?php echo $actualizar[3] ?></textarea><INPUT id=numeros2 name=result2 value=500 size="4" readonly="true"> <label for="nombre">Car&aacute;cteres permitidos: 500</label></td>
</tr>
</table>
</div>

<div id="botones">
<table>
<tr>
<td><input type="submit" value="Actualizar" name="actualizar"></td>
<td><input type="reset" name="borrar" value="Borrar"></td>
<BR>
</tr>
</table>
<br><br>
<a class="volvermenu" href="libros.php">Volver al Menu Libros</a>
</div> <!--fin div botones-->
<?php
echo "</form>";
}
}
}
?>
</form>
</div>
<!--fin div cuerpocentral-->

<!-- *******************DIVISION INFERIOR *****************-->
<div id="inferior">
<h5 align="center">Todos los derechos reservados</h5>
</div> <!--fin div inferior-->

</div>
<!-- fin de la div general-->

</BODY>
</HTML>
  #2 (permalink)  
Antiguo 06/03/2012, 15:28
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Contador de caracteres en un Textarea con Php

paranecesitas recargar la pagina.. para hacerlo en vivo y directo que el usuario valla viendo cuantos caracteres le quedan sua javascript te paso esto para que lo adaptes a tu form:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Cuenta y limita nº de caracteres en área de texto</title>
  4.  
  5. </head>
  6.  
  7. <BODY style="font-family: Verdana">
  8. <p align="center"><b>Cuenta y limita nº de caracteres en área de texto</b></center><p>
  9.  
  10. <HEAD>
  11.  
  12. <SCRIPT LANGUAGE="JavaScript">
  13.  
  14. function textCounter(field, countfield, maxlimit) {
  15. if (field.value.length > maxlimit)
  16. field.value = field.value.substring(0, maxlimit);
  17.  
  18. else
  19. countfield.value = maxlimit - field.value.length;
  20. }
  21.  
  22. </script>
  23. </HEAD>
  24.  
  25.  
  26. <BODY style="font-family: Verdana">
  27.  
  28. <!-- textCounter() parameters are:  text field, the count field, max length -->
  29.  
  30. <center>
  31. <form name=myform action="YOUR-SCRIPT.CGI">
  32. <font face="arial, helvetica, sans-serif" size="1">Puedes entrar hasta 125
  33. caracteres<br>
  34. <textarea name=message wrap=physical cols=28 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);"></textarea>
  35. <br>
  36. <input readonly type=text name=remLen size=3 maxlength=3 value="125"> caracteres
  37. faltan</font>
  38. </form>
  39.  
  40. </center>
  41.  
  42. </body>
  43. </html>
  #3 (permalink)  
Antiguo 07/03/2012, 18:07
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Contador de caracteres en un Textarea con Php

Hola, gracias por la respuesta, pero ese codigo si me funciona. Te explico, yo tengo dos modulos, uno para agregar libros a la base de datos y otro para editar en caso necesario. Cuando agrego libros, me funciona el contador perfectamente, en eso el formulario esta vacio, porque hay que llenarlo, pero cuando deseo editar, tengo que mostrar un formulario con los datos traidos de la base de datos.En el text area me muestra la info de la base de datos, pero si borro y escribo, el cont no funciona!

Es en esta parte:

<tr>
<td>Resumen:</td>
<td colspan='3'><textarea rows="10" cols="40" name="resumen" id="resumen" onKeyDown="contarresumen('form2','resumen')" onKeyUp="contarresumen('form2','resumen')"><?php echo $actualizar[2] ?></textarea><INPUT id=numeros name=result value=250 size="4" readonly="true"> <label for="nombre">Car&aacute;cteres permitidos: 250</label></td>
</tr>
  #4 (permalink)  
Antiguo 07/03/2012, 18:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Contador de caracteres en un Textarea con Php

Tienes dos eventos que apuntan a la misma función, pudiendo hacerlo en una:
onKeyDown="contarresumen('form2','resumen')"
onKeyUp="contarresumen('form2','resumen')"

con onkeyup sería suficiente, no se necesitaría el onkeydown.

Ambos eventos trabajan al presionar una tecla, por eso al copiar y pegar no funcionan. En tal caso, una opción es usar el evento onchange:


onchange="contarresumen('form2','resumen')"
onKeyUp="contarresumen('form2','resumen')"

Etiquetas: contador, formulario, html, mysql, registro, sql, tabla, variables, usuarios
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 21:36.