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

<ul>{pc:contentaction="lists"catid="156"order="listorderDESC"thumb="1"num="2"moreinfo... <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输出的结果是在左边(应该是在右边)?
展开
 我来答
wang350
2015-05-15 · 超过33用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:67.5万
展开全部

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

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

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

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

追问
你说的都懂,但自己水平很菜,还是没法搞好,希望......
追答
这个真没办法帮忙,你最好找你同事,或者领导给你梳理一下思路,让他们给你写建议
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式