javascript - 单击停止时如何在表单中提交计时器值?
问题描述
当有人单击停止时,如何使此计时器以 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>
感谢您的帮助
解决方案
正如@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
并编辑问题中显示的广告
推荐阅读
- java - Spring不能对非静态方法进行静态引用?
- java - 将两个字节合并为 int
- java - 设备区域设置对 SQLite 格式的影响
- docker - 在 gitlab ci 中登录 gitlab 容器注册表时出错
- php - 这个 (isset() && !empty()) 函数是多余的吗?
- laravel-5.7 - Laravel Form input type="text" select data from another table on type type 从表中建议现有数据并选择
- java - 自动装配返回 NullPointerException
- java - Fedora linux 上的“JAVA_HOME 设置为无效目录”gradlew 错误
- tensorflow - 即使使用 pip 安装后也没有名为 tensorflow 的模块
- angular - 如何正确使用 dotdotdot 在 Angular 5 中溢出文本?