在PHP代码里JS通过接受变量的值循环2次输出ID=“dh”。

<ul>
{pc:content action="lists" catid="156" order="listorder DESC" thumb="1" num="2" moreinfo="1"}
{loop $data $r}
<li>
<input type="text" id="time" value="<?php echo $r['enddata'];?>"/>
<script type="text/javascript">
// 倒计时
var time = document.getElementById('time').value;
//alert(time);
var AfterTime= new Date(time);
function ShowTimes(){
var NewTime=new Date();
LeaveTime = AfterTime - NewTime;
LeaveDays=Math.floor(LeaveTime/(1000*60*60*24)); //天
LeaveHours=Math.floor(LeaveTime/(1000*60*60)%24); //时
LeaveMinutes=Math.floor(LeaveTime/(1000*60)%60); //分
LeaveSeconds=Math.floor(LeaveTime/1000%60); //秒
var ne = document.getElementById("dh");
ne.innerHTML=" 剩<span>"+LeaveDays+"</span>天<span>"+LeaveHours+"</span>时<span>"+LeaveMinutes+"</span>分<span>"+LeaveSeconds+"</span>秒";
if(LeaveTime<0){
ne.innerHTML=" 抢购已结束";
}
}
setInterval(ShowTimes,100);
</script>
<div class="time" id="dh"></div>
</li>
{/loop}
{/pc}</ul>
说明:<li>循环2次,$r['enddata']变量分别获取相应的2次结束时间,但JS只运行一次,就是下图右边怎么才能像左边一样得到值。

只有5分,不好意思
当然input 里的“text”最后得换成"hidden",就是一个隐藏域。
刚才参考了一下网上的代码,应为PHP和JS在同一个页面,代码也可以改成:
<?php
$time=$r['enddata'];
echo "<script> var time=\"$time\";</script>";
?>
<script type="text/javascript">
// 倒计时
var AfterTime= new Date(time);
function ShowTimes(){
var NewTime=new Date();
//这了代码同上面的JS......
</script>
不过这样得到的时间是另一个时间。就是图片中后一个时间跟现在的时间差值,但JS输出的结果是在左边(应该是在右边)?

HI,哥们,你的理解有几点错误

    php 和 js 分别数据服务器执行的代码 和 浏览器执行的代码,虽说为同一个页面服务,但是是分别运行的,php执行的结果后,返回给浏览器,然后浏览器才能执行js代码,就是说浏览器看到的都是php执行的结果(可以查看页面源代码来看你PHP输出结果)

    你的php输出结果产生多个同名的js函数,而js重名函数是可以覆盖的(百度一下)

    然后你重新再考虑实现你要实现的程序的代码

追问

你说的都懂,但自己水平很菜,还是没法搞好,希望......

追答

这个真没办法帮忙,你最好找你同事,或者领导给你梳理一下思路,让他们给你写建议

温馨提示:答案为网友推荐,仅供参考
相似回答