这个是我的 方法,是个倒计时的方法:dypms.php<?php
//mssjsp function mssjdy($mssj){ date_default_timezone_set("PRC");//地区
 //$starttimestr = "17:20:00";//设置活动开启时间
 $endtimestr = $mssj;
 $endtime  =   strtotime($endtimestr);
 $nowtime  =   time();//获取当前服务器时间
 $lefttime = $endtime-$nowtime;  //活动开启 用结束的时间减去现在的时间 剩余倒计时的时间
?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script language="JavaScript"> var runtimes = 0;
 function GetRTime(){
 var nMS = <?=$lefttime?>*1000-runtimes*1000;
 var nH=Math.floor(nMS/(1000*60*60))%24;
 var nM=Math.floor(nMS/(1000*60)) % 60;
 var nS=Math.floor(nMS/1000) % 60; if(nH<10){
nH = "0"+nH;
  }
  if(nM<10){
  nM = "0"+nM;
  }
  if(nS<10){
  nS = "0"+nS;
  } document.getElementById("RemainH").innerHTML=nH; document.getElementById("RemainM").innerHTML=nM; document.getElementById("RemainS").innerHTML=nS;
 if(nMS<=0){
 document.getElementById("RemainH").innerHTML='00'; document.getElementById("RemainM").innerHTML='00'; document.getElementById("RemainS").innerHTML='00';
 } runtimes++; setTimeout("GetRTime()",1000); } window.onload=GetRTime; </script> </head><body><strong id="RemainH">XX
</strong>:
<strong id="RemainM">XX
</strong>:
<strong id="RemainS">XX
</strong></body></html><?
}
 ?>我在另一个页面a.php进行调用,我是这样调用的,
include("dypms.php");
mssjdy("17:40:20");
现在的问题是,如果我在,在a.php这个页面调用一次是可以的,如果我在调用一次就出问题了,
include("dypms.php");
mssjdy("17:20:20");
意思就是 我在 a.php页面写入 两个调用 就会有一个不好用的。
a.phpinclude("dypms.php");
mssjdy("17:40:20");//第一次调用
mssjdy("17:20:20");//第二次调用

解决方案 »

  1.   

    两个调用操作同一块html代码,肯定是最后一个调用好用了 
      

  2.   

    例如,我第一次让a = 1那么我再来一次a = 2那么a当然是2了,因为重新赋值了
      

  3.   

    因为你调用了2次,而生成了一样的html代码,那第二次生成后执行js就自然出错啦
      

  4.   

    其实,没必要这样做吧,举个例,你可以把mssjdy拆开,mssjdy只是负责生成$lefttime,然后要生成多少个你都用数组记录好,最后输出这个数组去另一个页面b,然后页面b就调循环读这个数组并调用你写的js就可以啦
      

  5.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title>  </head>
    <body><?php
    //mssjsp function mssjdy($mssj,$i(要循环的次数)){
     for($j=0;$j<$i;$j++){
     date_default_timezone_set("PRC");//地区
     //$starttimestr = "17:20:00";//设置活动开启时间
     $endtimestr = $mssj;
     $endtime  =   strtotime($endtimestr);
     $nowtime  =   time();//获取当前服务器时间
     $lefttime = $endtime-$nowtime;  //活动开启 用结束的时间减去现在的时间 剩余倒计时的时间
     //用php实现那段js
     分别得到$HX,$MX,$SX
     //end
    ?><strong id="RemainH<?php echo $i; ?>"><?php echo $HX; ?>
    </strong>:
    <strong id="RemainM<?php echo $i; ?>"><?php echo $MX; ?>
    </strong>:
    <strong id="RemainS<?php echo $i; ?>"><?php echo $SX; ?>
    </strong>
    <?
    }}
     ?> </body></html>
    实在看不过,算了,帮你写个例子出来,未经过验证,剩下自己解决
      

  6.   

    动态生成html的标签部分,这样就不会出现被赋给的问题了,当然了生成标签的时候要注意id不同
      

  7.   


      js 那部分用php是怎么实现的啊,我是刚刚学习,有些东西不是很清楚,
      

  8.   

    生成的html中js的变量/函数冲突了.
      

  9.   

    LZ,如果你明白那段js的说话,而有一些最基本的基础,那段js程序转用php实现,是非常简单的......
      

  10.   


    这段js 是用来倒计时用的,但是 如果用PHP实现,我在网上查了下,没有setTimeout类似的方法,来定时执行函数的啊。 var runtimes = 0;
     function GetRTime(lefttime){
     var nMS = lefttime*1000-runtimes*1000;
     var nH=Math.floor(nMS/(1000*60*60))%24;
     var nM=Math.floor(nMS/(1000*60)) % 60;
     var nS=Math.floor(nMS/1000) % 60; if(nH<10){
    nH = "0"+nH;
      }
      if(nM<10){
      nM = "0"+nM;
      }
      if(nS<10){
      nS = "0"+nS;
      } document.getElementById("RemainH").innerHTML=nH; document.getElementById("RemainM").innerHTML=nM; document.getElementById("RemainS").innerHTML=nS;
     if(nMS<=0){
     document.getElementById("RemainH").innerHTML='00'; document.getElementById("RemainM").innerHTML='00'; document.getElementById("RemainS").innerHTML='00';
     } runtimes++; setTimeout("GetRTime(lefttime)",1000); } window.onload=GetRTime();这个是这段javascript.