Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Código javascript no se ejecuta siempre

Estas en el tema de Código javascript no se ejecuta siempre en el foro de Javascript en Foros del Web. Buenas, Esto me tiene loco loco loco... En una página html tengo el código de abajo. Primero tengo el código javascript y luego el código ...
  #1 (permalink)  
Antiguo 06/11/2016, 10:10
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Código javascript no se ejecuta siempre

Buenas,

Esto me tiene loco loco loco...

En una página html tengo el código de abajo. Primero tengo el código javascript y luego el código php.

Código Javascript:
Ver original
  1. <script>
  2.  
  3.     var segundos = <? echo $seg; ?>;
  4.    
  5.     function fun()
  6.     {
  7.         alert("hola");
  8.     }
  9.  
  10. </script>

Código PHP:
Ver original
  1. <?
  2.  
  3.     $seg = 10;
  4.     $min = 1;
  5.  
  6.     if(isset($_POST['amp']))
  7.     {
  8.         ?>
  9.         <script>
  10.             fun();
  11.         </script>
  12.         <?
  13.     }
  14.  
  15.     echo "<form action=pro3.html method=post>";
  16.     echo "<input type=submit value=Ampliar name=amp id=amp></form>"
  17.  
  18. ?>

Necesito cargar datos de una base de datos. Imaginemos que los datos son las variables $seg y $min. Luego tengo un input type submit que si lo pulso me vuelve a cargar la misma página. Si lo pulso, necesito llamar a una función en javascript, que sería fun(). Y en esa función necesito trabajar con las variables $seg y $min.

Para tomar el valor de la variable $seg utilizo en javascript lo siguente:
var segundos = <? echo $seg; ?>;

Pues no funciona y seguro que sabéis el por qué

Si comento esa línea o la elimino (var segundos = <? echo $seg; ?>;) sí se ejecuta lo que tengo en la función fun() pero si no elimino la línea no se ejecuta nada de lo que tengo en la función fun()

Por qué?

Gracias por la ayuda
  #2 (permalink)  
Antiguo 06/11/2016, 13:56
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: Código javascript no se ejecuta siempre

Cita:
Iniciado por waspeis Ver Mensaje
Buenas,

Esto me tiene loco loco loco...

En una página html tengo el código de abajo. Primero tengo el código javascript y luego el código php.

Código Javascript:
Ver original
  1. <script>
  2.  
  3.     var segundos = <? echo $seg; ?>;
  4.    
  5.     function fun()
  6.     {
  7.         alert("hola");
  8.     }
  9.  
  10. </script>

Código PHP:
Ver original
  1. <?
  2.  
  3.     $seg = 10;
  4.     $min = 1;
  5.  
  6.     if(isset($_POST['amp']))
  7.     {
  8.         ?>
  9.         <script>
  10.             fun();
  11.         </script>
  12.         <?
  13.     }
  14.  
  15.     echo "<form action=[B][COLOR="Red"]pro3.html[/COLOR][/B] method=post>";
  16.     echo "<input type=submit value=Ampliar name=amp id=amp></form>"
  17.  
  18. ?>
ves el problema??
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 06/11/2016, 14:08
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código javascript no se ejecuta siempre

Miré el código y no entendí que es lo que deseas. Así que me quedé con lo que necesitas:

"Necesito cargar datos de una base de datos. Imaginemos que los datos son las variables $seg y $min."

Los datos entregados por una base de datos pueden tener n valores distintos, por lo tanto debes almacenar los datos en un arreglo. $seg[n] $min[n]

"Luego tengo un input type submit que si lo pulso me vuelve a cargar la misma página. Si lo pulso, necesito llamar a una función en javascript, que sería fun(). Y en esa función necesito trabajar con las variables $seg y $min."

Suponiendo que $seg y $min son constantes, no te recomiendo hacer un submit para arrancar fun, sino un evento onclick, te dejo un ejemplo sencillo:

Código HTML:
Ver original
  1. <?php
  2.  
  3. $s = 1;
  4. $m = 2;
  5.  
  6. ?>
  7.  
  8. <script type="text/javascript">
  9. function fun(){
  10. var s = <?php echo $s; ?>;
  11. var m = <?php echo $m; ?>;
  12. alert("m vale: "+m+"\ns vale: "+s);
  13. }
  14.  
  15. <input type="button" value="arranca fun" onclick="fun();"/>

Espero te sirva

  #4 (permalink)  
Antiguo 06/11/2016, 14:38
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Código javascript no se ejecuta siempre

alvaro_trewhela

En principio lo que voy a obtener de la base de datos al cargar la página es un tiempo, que serán determinadas horas, segundos y minutos. Para simplificar he puesto sólo dos variables: segundos ($seg) y minutos ($min)

Con el evento onclick ya lo hice, pero necesito saber hacerlo también con un submit. Cuando haga el submit tengo que grabar datos en la base de datos y justo después necesito que se ejecute el código de la función javascript, que en concreto es una cuenta atrás

Gracias por contestar, pero me queda la duda... Si en mi código javascript eliminas o comentas la línea var segundos = <? echo $seg; ?>; entonces la función javascript sí se ejecuta y eso es lo que no llego a entender...


IsaBelM

No lo veo, no lo veo

Tiene algo que ver que sea un archivo con extensión html?
He probado con extensión php pero es igual

Sigo sin verlo...
  #5 (permalink)  
Antiguo 06/11/2016, 14:52
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código javascript no se ejecuta siempre

Si es necesario el submit, creo que la mejor opción sería el evento onload.

Emm en cuanto a la eliminación, no debería funcionar ya que estás llamando a una variable que no existe, en tu caso debe funcionar porque tienes la pág.
En la caché borra y veras que no funciona.

Edito: En efecto, si ejecutas el siguiente código veras a lo que me refiero, es la misma función (sintaxis) pero una funciona y la otra no por el simple hecho de comentar y/o eliminar la variable:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function testno(){
  3. //var s = 1;
  4. var m = 2;
  5. alert("Funciona!!\ns vale: "+s+"\nm vale: "+m);
  6. }
  7.  
  8. function testsi(){
  9. var s = 1;
  10. var m = 2;
  11. alert("Funciona!!\ns vale: "+s+"\nm vale: "+m);
  12. }
  13. </script>
  14.  
  15. <input type="button" value="Este no funciona" onclick="testno();"/><br/>
  16. <input type="button" value="Este funciona" onclick="testsi();"/>


Última edición por alvaro_trewhela; 06/11/2016 a las 15:08
  #6 (permalink)  
Antiguo 07/11/2016, 04:18
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Código javascript no se ejecuta siempre

alvaro_trewhela

Gracias por responder

Ya lo tengo hecho con submit. Sólo tengo que poner la línea var segundos = <? echo $seg; ?>; en el script que está dentro del php en lugar de ponerlo en el primer script

Así quedaría

Código Javascript:
Ver original
  1. <script>
  2.  
  3.     function fun()
  4.     {
  5.         alert(segundos);
  6.     }
  7.  
  8. </script>

Código PHP:
Ver original
  1. <?
  2.  
  3.     $seg = 10;
  4.     $min = 1;
  5.  
  6.     if(isset($_POST['amp']))
  7.     {
  8.         ?>
  9.         <script>
  10.             var segundos = <?php echo $seg; ?>;
  11.             fun();
  12.         </script>
  13.         <?
  14.     }
  15.  
  16.     echo "<form action=pro3.html method=post>";
  17.     echo "<input type=submit value=Ampliar name=amp id=amp></form>"
  18.  
  19. ?>

Voy a mirar la opción que comentas para hacerlo en el evento onload que igualmente me puede valer

Gracias
  #7 (permalink)  
Antiguo 07/11/2016, 07:37
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Código javascript no se ejecuta siempre

Continuas sin resolver totalmente el problema de extensión del documento
Cita:
echo "<form action=pro3.html method=post>";
Y sí, también se trata de un problema de ámbito. En cualquier herramienta para desarrolladores lo podrías haber observado sin problemas. El orden de los factores, en programación, sí altera el producto.

Una sugerencia; ¿Por qué no pasas las variables a la función javascript como parámetros?

Etiquetas: ejecuta, funcion, html, input, php, siempre, valor
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 06:06.