未在JavaScript中分配给id或类的新值

问题描述 投票:0回答:1

以下脚本用于显示倒计时时间

使用过的代码在这里结合了php,javascript

试过很多方法但没有用

 <script>
            function countdown(endT,callback,val) {
            var val,days,hours,minutes,sec,timer;

            end = new Date(endT);

            end = end.getTime(); //Get initial Date in Milliseconds,
            if (isNaN(end)) {
               alert('@ countdown.js @  "Invalid Date", valid format- mm/dd/yyyy hh:mm:ss TT ');
               return;
            }

            timer = setInterval(calculate,1000);//Timer to calculate remaining time

            function calculate(){
             var current = new Date();
             var remaining = parseInt((end - current.getTime())/1000);//remaining seconds, 

                if (remaining <= 0){
                    clearInterval(timer);
                    days=0;
                    hours=0;
                    minutes=0;
                    sec=0;
                    display(days,hours,minutes,sec);
                    if (typeof callback === 'function' ) {
                        callback();
                    }

                }else{

                    days = parseInt(remaining/86400);
                    remaining = (remaining%86400);
                    hours = parseInt(remaining/3600);
                    remaining = (remaining%3600);
                    minutes = parseInt(remaining/60);
                    remaining = (remaining%60);
                    sec = parseInt(remaining);
                    display(days,hours,minutes,sec);


                }
            }

            //Function For displaying Results in HTML page with specific ID's 
            function display(days,hours,minutes,sec) {

                var dl = days.toString().length;
                if (dl == "1") {
                    sl = 2;
                }else{
                    if (isNaN(dl)) {
                        sl = 3;
                    }
                    sl = dl;
                }
                d1="days";
                d2=val;
                d=d1.concat(d2);

                h1="hours";
                h2=val;
                h=h1.concat(h2);

                m1="minutes";
                m2=val;
                m=m1.concat(m2);

                s1="seconds";
                s2=val;
                s=s1.concat(s2);

                document.getElementById(d).innerHTML = ("00"+days).slice(-sl);
                document.getElementById(h).innerHTML = ("0"+hours).slice(-2);
                document.getElementById(m).innerHTML = ("0"+minutes).slice(-2);
                document.getElementById(s).innerHTML = ("0"+sec).slice(-2);
            }

        }

    </script>
    <?php
    for ($i = 6; $i <9; $i++) 
    {
    $dates="2019-03-0$i 12:45:01";
    ?>

        <script>
        countdown('<?php echo $dates;?>',callback,'<?php echo $i;?>');
    function callback(){
          //alert('Your Id is Expired');
    };

    </script>


    <div class="countDown" align="center">
                               <span id="days<?php echo $i; ?>">00</span>     <!-- Remaining Days,id="days"-->
                               <span id="hours<?php echo $i; ?>">00</span>    <!-- Remaining hours ,id="hours"-->
                               <span id="minutes<?php echo $i; ?>">00</span>  <!-- Remaining minutes,id="minutes"-->
                               <span id="seconds<?php echo $i; ?>">00</span>  <!-- Remaining secounds,id="secounds"-->
                            </div>
                            <?php
    }
    ?>

第一个迭代值仅分配给所有其他循环ID ...而不是唯一值

循环有3次迭代

第一次迭代值分配第一个id

分配给下两次迭代的第一个迭代值..

请帮助我解决问题..

javascript php ajax countdown
1个回答
-1
投票

php和javascript的结合总是令人困惑。它可以在页面加载时创建动态元素时组合使用,但在页面加载后不能组合使用。因此,您必须在javascript中编码以进行倒计时。如果需要访问服务器变量(即php变量),那么您需要Ajax请求来访问此变量。

© www.soinside.com 2019 - 2024. All rights reserved.