Autor Tema: Cuentra Atras Javascript implementando PHP  (Leído 942 veces)

Desconectado Vislo

  • PHPerit@
  • *
  • Mensajes: 7
  • Karma: 1
  • Nuev@ PHPer@
    • Ver Perfil
Cuentra Atras Javascript implementando PHP
« en: 10 de Mayo de 2012, 18:17:23 pm »
Buenas, pues tengo una cuenta atras en javascript y funciona bien lo malo es que ejecuta el php de una vez y no hasta que el contador termine eso pasa con la funciones pero cuando es texto si lo ejecuta bien aqui dejo el codigo:
countdown.js:
Código: [Seleccionar]
/*
Author: Robert Hashemian
http://www.hashemian.com/

You can use this code in any manner so long as the author's
name, Web address and this disclaimer is kept intact.
*******************************************************
*/

function calcage(secs, num1, num2) {
  s = ((Math.floor(secs/num1))%num2).toString();
  if (LeadingZero && s.length < 2)
    s = "0" + s;
  return "<b>" + s + "</b>";
}

function CountBack(secs) {
  if (secs < 0) {
    document.getElementById("cntdwn").innerHTML = FinishMessage;
    return;
  }
  DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
  DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
  DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
  DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));

  document.getElementById("cntdwn").innerHTML = DisplayStr;
  if (CountActive)
    setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor) {
 document.write("<span id='cntdwn'></span>");
}

if (typeof(BackColor)=="undefined")
  BackColor = "white";
if (typeof(ForeColor)=="undefined")
  ForeColor= "black";
if (typeof(TargetDate)=="undefined")
  TargetDate = "12/31/2020 5:00 AM";
if (typeof(DisplayFormat)=="undefined")
  DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
if (typeof(CountActive)=="undefined")
  CountActive = true;
if (typeof(FinishMessage)=="undefined")
  FinishMessage = "";
if (typeof(CountStepper)!="number")
  CountStepper = -1;
if (typeof(LeadingZero)=="undefined")
  LeadingZero = true;


CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0)
  CountActive = false;
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
putspan(BackColor, ForeColor);
var dthen = new Date(TargetDate);
var dnow = new Date();
if(CountStepper>0)
  ddiff = new Date(dnow-dthen);
else
  ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf()/1000);
CountBack(gsecs);
El Script que pongo en la pagina la cual deseo mostrar y hacer la accion al final del conteo:
Código: [Seleccionar]
<script language="JavaScript">
TargetDate = "05/10/2012 9:27 AM";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "<?php aumentar($usuario$edificio1); ?>";
</script>
<script language="JavaScript" src="http://localhost/rts/countdown.js"></script>
Pues como veran el aumentar(arg1, arg2); se ejecuta automaticamente y no cuando termina el conteo la funcion aumentar(arg1, arg2); lanza un codigo mysql que funciona a la perfecion pero re***** y digo lo ejecuta de una vez. NOSE nada de Javascript por eso no se que hacer agradeceria su ayuda gracias :D

Comunidad PHPeros

Cuentra Atras Javascript implementando PHP
« en: 10 de Mayo de 2012, 18:17:23 pm »

Desconectado ilovepixel

  • PHPer@ Fijo
  • ***
  • Mensajes: 149
  • Karma: 9
  • Sexo: Masculino
  • Game Artist & Developer
    • Ver Perfil
    • i ■ pixel
Re:Cuentra Atras Javascript implementando PHP
« Respuesta #1 en: 10 de Mayo de 2012, 22:05:43 pm »
Lo único que se me ocurre por ahora es esto:

Código: [Seleccionar]
<html>
<head>
</head>
<body>
<div id="php">
</div>
<script type="text/javascript">
var count = 0;
function call()
{
if(count>0)
{
document.getElementById("php").innerHTML +=
"<?php
function hello_world($arg)
{
echo $arg;
}

hello_world(&#39;<p>hello world</p>&#39;);
?>
"
}
else count++;

var t = setTimeout("call()",2000);
}

window.onload = call();

</script>
</body>
</html>

por lo que sé una función de php dentro del mismo archivo no puede ser llamada desde javascript, por eso la solución que se me ocurre es escribir la función php con javascript y luego ejecutarla.

Desconectado Vislo

  • PHPerit@
  • *
  • Mensajes: 7
  • Karma: 1
  • Nuev@ PHPer@
    • Ver Perfil
Re:Cuentra Atras Javascript implementando PHP
« Respuesta #2 en: 10 de Mayo de 2012, 23:35:46 pm »
Lo único que se me ocurre por ahora es esto:

Código: [Seleccionar]
<html>
<head>
</head>
<body>
<div id="php">
</div>
<script type="text/javascript">
var count = 0;
function call()
{
if(count>0)
{
document.getElementById("php").innerHTML +=
"<?php
function hello_world($arg)
{
echo $arg;
}

hello_world(&#39;<p>hello world</p>&#39;);
?>
"
}
else count++;

var t = setTimeout("call()",2000);
}

window.onload = call();

</script>
</body>
</html>

por lo que sé una función de php dentro del mismo archivo no puede ser llamada desde javascript, por eso la solución que se me ocurre es escribir la función php con javascript y luego ejecutarla.
El Problema de eso es que cuando reinicio pagina se reinicia tambien yo lo que quiero es hacer una cuenta atras aunque el usuario salga de la pagina el conteo siga y cuando llege a 0 ejecute una funcion

Desconectado ilovepixel

  • PHPer@ Fijo
  • ***
  • Mensajes: 149
  • Karma: 9
  • Sexo: Masculino
  • Game Artist & Developer
    • Ver Perfil
    • i ■ pixel
Re:Cuentra Atras Javascript implementando PHP
« Respuesta #3 en: 11 de Mayo de 2012, 07:47:58 am »
Esto puede que te sirva, el conteo sigue aun si el usuario salio de la web, a demás  cuenta los refresh que ha hecho.

Código: [Seleccionar]
<html>
<head>
</head>
<body>
<div id="php">
</div>
<script type="text/javascript">

if(localStorage._user_date == undefined && localStorage._user_loop == undefined)
{
var d = new Date();
localStorage._user_date = d.getTime();
localStorage._user_loop = 0;
}

function loop()
{
var d = new Date().getTime();
var r = d - localStorage._user_date;
if(r>10000)
{
localStorage._user_date = d;
localStorage._user_loop++;
console.log("Ha pasado 10 segundos y está en el refresh numero "+localStorage._user_loop);
document.getElementById("php").innerHTML =
"<?php

function hello_world($arg)
{
echo $arg;
}

hello_world(&#39;<p>Hello World</p>&#39;);
?>
";
}

var t = setTimeout("loop()",33);
}

window.onload = loop();

</script>
</body>
</html>

Ojala te sirva.
Saludos

Desconectado Vislo

  • PHPerit@
  • *
  • Mensajes: 7
  • Karma: 1
  • Nuev@ PHPer@
    • Ver Perfil
Re:Cuentra Atras Javascript implementando PHP
« Respuesta #4 en: 11 de Mayo de 2012, 14:26:00 pm »
Esto puede que te sirva, el conteo sigue aun si el usuario salio de la web, a demás  cuenta los refresh que ha hecho.

Código: [Seleccionar]
<html>
<head>
</head>
<body>
<div id="php">
</div>
<script type="text/javascript">

if(localStorage._user_date == undefined && localStorage._user_loop == undefined)
{
var d = new Date();
localStorage._user_date = d.getTime();
localStorage._user_loop = 0;
}

function loop()
{
var d = new Date().getTime();
var r = d - localStorage._user_date;
if(r>10000)
{
localStorage._user_date = d;
localStorage._user_loop++;
console.log("Ha pasado 10 segundos y está en el refresh numero "+localStorage._user_loop);
document.getElementById("php").innerHTML =
"<?php

function hello_world($arg)
{
echo $arg;
}

hello_world(&#39;<p>Hello World</p>&#39;);
?>
";
}

var t = setTimeout("loop()",33);
}

window.onload = loop();

</script>
</body>
</html>

Ojala te sirva.
Saludos
eso no lo manipula el usuario? y como hago para que aparesca el  conteo olle y gracias por todo de antemano
« Última modificación: 11 de Mayo de 2012, 14:36:45 pm por Vislo »