Foros del Web » Programando para Internet » PHP »

Problema al implementar un mini codigo (que por separado funciona)en mi página

Estas en el tema de Problema al implementar un mini codigo (que por separado funciona)en mi página en el foro de PHP en Foros del Web. Hola amigos, necesito ayuda para implementar un código muy simple y bastante corto, que tengo funcionando en un archivo, lo he hecho a parte para ...
  #1 (permalink)  
Antiguo 18/09/2011, 18:46
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Problema al implementar un mini codigo (que por separado funciona)en mi página

Hola amigos, necesito ayuda para implementar un código muy simple y bastante corto, que tengo funcionando en un archivo, lo he hecho a parte para comprobar si funcionaba y al intentar montarlo en el archivo que de verdad debe ir no me funciona!

El script de javascript lo que hace es mientras se va escribiendo en un textarea, en un input text se va contabilizando el numero de caracteres del textarea, al implementarlo en el archivo .php no cuenta dichos caracteres, pienso que al estar dentro de una condicion 'if, else' algo pasa que deja de funcionar...

Tengo una pagina principal:

Código PHP:
<?php
          
include('cabecera.php');
?>

//aqui varias funciones en php...

<?php if(!isset($enviado)): ?>

<form name="form_a" action="index.php"  method="post" >

<textarea cols="40" rows="5" name="textarea" onKeyDown="cuenta()" onKeyUp="cuenta()"></textarea>
<input type="text" name="caracteres" size="4">

<?php else: ?>

<?php
//aqui mas codigo
?>

<?php endif; ?> 
</form>
</body>
Y aquí el codigo de cabecera.php

Código HTML:
<head>
<title>titulo</title>

<script language="JavaScript" type="text/JavaScript">

function cuenta(){ 
      	document.forms[0].caracteres.value=document.forms[0].textarea.value.length 
} 

</script>
</head>

<body> 
El motivo de poner mi duda en PHP es porque como ya he dicho antes la funcion javascript que contiene, funciona perfectamente, pero al ponerla en el archivo donde necesito que vaya pues, direcamente no hace nada.

Alguien me puede decir si influye el tener el textarea y el input dependiendo de una condicion de php? No se si me he explicado bien... espero que si

Un saludo!
  #2 (permalink)  
Antiguo 18/09/2011, 19:24
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 17
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Hola theScript, me alegra verte de nuevo por aquí :) El javascript anda bien, lo he probado por separado, de la manera que lo quieres tener no lo he probado, revisa bien el código php por si tienes algún fallo, pero... no te da ningún error ni nada???????????????
  #3 (permalink)  
Antiguo 18/09/2011, 19:25
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 17
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Por cierto, me quedo con el tu funcion javascript para usarla, espero que no te importe!! jajajaja
  #4 (permalink)  
Antiguo 18/09/2011, 19:31
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

hombre ¡follow! jijijijijijij no me importa que utilices el ódigo para nada, para eso está forosdelweb no? unos preguntan y aprenden, otros responden y otros leen y aprenden de los que aprenden! ya no se ni lo que digo! Si te animas a echarme una mano ya sabes! Que estoy estancadisima, llevo dos días que no me sale nada bien :(
  #5 (permalink)  
Antiguo 18/09/2011, 19:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Depuracion basica:

1- Revisa el codigo fuente generado en el navegador... esta todo correcto? aparecen las funciones javascript y el codigo HTML como los necesitas?
2- Firefox es tu amigo y su consola de errores la mejor ayuda al instante, te puede decir exactamente que es lo que esta fallando.
3- Si obtienes un mensaje de error y no sabes como solucionarlo, regresa aqui y pregunta nuevamente.

Ahora, sugerencias:

Javascript es mas compatible con la mayoria de navegadores si trabajas con ID's en lugar de document.forms[indice] y puedes hacer que la funcion cuente caracteres en varios campos en lugar de uno solo:
Código Javascript:
Ver original
  1. function cuenta(idText, idChars) {
  2.     var text = document.getElementById(idText);
  3.     var chars = document.getElementById(idChars);
  4.     chars.value = text.value.length;
  5. }

Ahora, los campos HTML
Código HTML:
Ver original
  1. <!-- Se supone que ya definiste el formulario, vamos directo a los cuadros de texto -->
  2. <textarea cols="40" rows="5" name="textarea1" id="text1" onkeyup="cuenta('text1', 'chars1');"></textarea>
  3. <input type="text" name="caracteres1" id="chars1" size="4" disabled="disabled" />
  4.  
  5. <textarea cols="40" rows="5" name="textarea2" id="text2" onkeyup="cuenta('text2', 'chars2');"></textarea>
  6. <input type="text" name="caracteres2" id="chars2" size="4" disabled="disabled" />

Ojo, yo creo que solo necesitas el onkeyup y debe ser todo en minusculas o no funcionara en los navegadores de verdad, tal vez solo IExplorer lo reconozca.

Para evitar que los usuarios manipulen el contador... solo agrega disabled="disabled" y aplica un estilo CSS que te permita hacer la vista mas atractiva.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 18/09/2011, 19:40
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 2 meses
Puntos: 306
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Hola, fijate en el html que genera el php si te imprime lo que tienes dentro del if.

Edito:
Bueno, Triby me gano de mano y su respuesta es mucho más completa que la mía, así que hazle caso. Hola Triby!!!.
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #7 (permalink)  
Antiguo 18/09/2011, 20:09
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Hola, muchas gracias a los dos y a triby por el aporte! Tu código es mucho mas aplicable que el mio está claro... jejejejejeje

Sigo con el mismo problema, todo lo que va dentro del if lo imprime con normalidad excepto la cuenta de caracteres, es como si el javascript se anulara...

Respecto a la consola de errores, me sale este error:

Cita:
Uncaught ReferenceError: cuenta is not defined
Cuenta está definido en la funcion, y la funcion la tengo en el head de 'cabecera.php' y cabecera.php con un "include" en index.php, puede ser debido a eso?¿cómo puedo solucionarlo?
  #8 (permalink)  
Antiguo 18/09/2011, 20:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Muestra todo el codigo fuente generado en el navegador, seguro ahi se vera cual es el problema.

Por cierto, la forma adecuada de integrar un script en html es:
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. // Aqui tu codigo

Resulta que el atributo language es obsoleto y todos los atributos y valores de etiquetas html deben ser solamente en minusculas, de forma que <script type="text/JavaScript"> provocara que el tipo de script no sea reconocido.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 18/09/2011, 20:33
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Hola otra vez, muchas gracias por indicarme la forma mas correcta, cuando le digo 'ver codigo fuente...' el codigo se ve así (literalmente):

Cita:

<script type="text/javaScript">

function cuenta(idText, idChars) {

  var text = document.getElementById(idText);

  var chars = document.getElementById(idChars);

  chars.value = text.value.length;

}

</script>
  #10 (permalink)  
Antiguo 18/09/2011, 20:40
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Bueno, parece que tienes problemas con la codificacion de caracteres y/o copiaste los numeros de linea que aparecen en el HIGHLIGHT del foro.

Copia y pega por favor el codigo completo de cabecera.php para ver si ahi esta el error.

Claro, tambien podrias eliminar los caracteres extraños, asi como espacios y tabuladores al principio de cada linea y probar nuevamente.

Y ojo con esto: <script type="text/javaScript">
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 18/09/2011, 20:53
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Aquí está el archivo cabecera, de verdad Triby muchas gracias por tu interés y ayuda.

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<title></title>

<!--select_dep Esta funcion es para crear select dependientes FUNCIONA OK-->
 <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#especie").change(function(event){
                    var id = $("#especie").find(':selected').val();
                    $("#raza").load('fun_perfil_select.php?id='+id);
                });
            });
		
        </script>

        <script type="text/javascript">
       function cuenta(idText, idChars) {
* * var text = document.getElementById(idText);
* * var chars = document.getElementById(idChars);
* * chars.value = text.value.length;
}
</script>

</head>

<body>

<div id="header-wrap"><div id="header">

	<a name="top"></a>
<div id="logo">
	<a href="index.php" title=""><img src="images/logotipo.png" alt="image post" style="background:none; border:none;"/></a>
	 
</div>
<div  id="nav">
		<ul>
			<li id="current"><a href="index.php">Inicio</a></li>
			<li><a href="perfil.php">Mi Perfil</a></li>
			<li><a href="miembros.php">Miembros</a></li>
			<li><a href="configuracion.php">Mi Cuenta</a></li>
		</ul>
	</div>
</div></div> 
  #12 (permalink)  
Antiguo 18/09/2011, 20:56
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

AH!!! me acabo de dar cuenta al postear que Dónde me salen los caracteres extraños, ahora son "*" !!! Que fuerte, yo en mi editor no veo nada, está todo limpio sin asteriscos... voy a quitar los espacios a ver si fuera esoy te estoy volviendo loco a ti , a mi y a los usuarios!
  #13 (permalink)  
Antiguo 18/09/2011, 20:59
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Problema al implementar un mini codigo (que por separado funciona)en mi pá

Triby,

Cuando dicen que en la mayoria de las ocasiones copiar y pegar no trae nada bueno.... ¡¡en mi caso a sido cierto!!! Ya lo tengo funcionando, muchas gracias por tu ayuda y paciencia

Un saludo y hasta pronto!!

Etiquetas: implementar, mini, página, separado
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:52.