首页 > 解决方案 > 单击停止时如何在表单中提交计时器值?

问题描述

当有人单击停止时,如何使此计时器以 name="time" 形式提交表单名称并将值发送到 $_POST['time'] 然后我可以将值存储到 mysql 数据库中?

    <div id="timer"></div>
    <button type="button" onclick="stopTimer()">Stop</button>

    <?php
    $time = strtotime('01:00:00');
    ?>


   <script>
    var startTime = <?php echo $time;?>;
    //var startTime = Date.now();
    var second = 1000;
    var minute = second * 60;
    var hour = minute * 60;
    var container = document.getElementById('timer');
    
    function stopTimer() {
        clearInterval(timer);
    }
    
    function pad(n){
      return ('00' + n).slice(-2);
    }
    
    var timer = setInterval(function(){
      var currentTime = Date.now();
      var difference = currentTime - startTime;
    
      var hours = pad((difference / hour) | 0);
      var minutes = pad(((difference % hour) / minute) | 0);
      var seconds = pad(((difference % minute) / second) | 0);
    
      container.innerHTML = hours + ':' + minutes + ':' + seconds;
    
    // This only represents time between renders. Actual time rendered is based
    // on the elapsed time calculated above.
    }, 250);
    </script>

感谢您的帮助

标签: javascriptphpjqueryforms

解决方案


正如@brombeer 建议的那样,只需创建一个这样的表单:

<form action="yoururl" method="post">
    <input id="timer" type="number" disabled name="time" value="<?=$time?>" /> <!--here the value is shown-->
    <button type="submit">Stop</button> <!--when you click here time=xx:xx:xx is sent to yoururl-->
</form>

然后,您可以从 JavaScript 访问它timer并编辑问题中显示的广告


推荐阅读