我正在尝试衡量从用户提交PHP表单到再次提交表单的时间段。表单的操作是相同的页面,因此它只是一次刷新。此外,用户可以再次输入相同的数据。我需要它,以便它在页面刷新之前开始计数,因为结果必须尽可能准确。我已经尝试了许多方法,但没有一个方法取得任何成功。我简化了以下代码:
HTML表单
<form method="GET" action="index.php">
<input id="motion_image" type="image" value="1" name="x" src="img/btn1.png">
<input id="motion_image" type="image" value="2" name="x" src="img/btn2.png">
</form>
最终,我需要一个PHP或JavaScript变量,用户可以按下这两个按钮中的任何一个按钮,当他们再次按下其中任何一个按钮时,需要多长时间。重要的是计数器在刷新之前开始,因为变量需要尽可能准确。此外,它需要响应,以便在5秒之后触发事件(例如JavaScript警报)。我觉得没有必要包括我之前的尝试,因为它们都没有成功,我相信可能有更好的方法。我可以完全访问托管该站点的服务器,因此运行python子脚本并使用JSON或任何其他类似解决方案交换变量是完全可能的。
对于任何错误和我普遍缺乏堆栈溢出技能的道歉:)
由于
答案 0 :(得分:0)
为什么不提交每个表单的提交日期?然后比较这些日期?您也可以将其保存到数据库中。我希望你能有所了解。 (对不起,我应该把它放在评论中,但我仍然可以
)答案 1 :(得分:0)
如果您可以信任用户的系统时间:
当用户点击该按钮时,使用javascript获取用户的系统时间并将其发送到服务器;
在服务器上节省时间......比如session或db;
当用户第二次点击该按钮时 - &gt;再做一遍这些步骤;
毕竟你可以将这些时间进行比较;
//
使用js,您也可以发送用户在页面上花费的每个时间段。 为此,每当加载页面时,在一些变量中设置系统时间,当用户点击按钮时,再次获取时间并将两者发送到服务器以获得确切的花费时间;
答案 2 :(得分:0)
在研究了使用localStorage和JS后,我找到了一个准确的解决方案。我为其他可能面临相同或类似问题的人简化了我的代码。感谢所有帮助过的人:)
<强> HTML 强>
<form method="GET" action="index.php">
<input id="motion_image" type="image" value="1" name="x" src="img/btn1.png" onclick="return processInput(1)">
<input id="motion_image" type="image" value="2" name="x" src="img/btn2.png" onclick="return processInput(2)">
<input id="motion_image" type="image" value="3" name="x" src="img/btn2.png" onclick="return processInput(3)">
</form>
<强>的JavaScript 强>
function processInput(x) {
localStorage.eventType = x;
checkEventType();
}
function checkEventType() {
if (Number(localStorage.eventType) == 1) {
runningInterval = setInterval(function() {
localStorage.counter = Number(localStorage.counter) + 1;
}, 10);
} else if (Number(localStorage.eventType) == 2) {
runningInterval = setInterval(function() {
localStorage.counter = Number(localStorage.counter) - 1;
}, 10);
} else if (Number(localStorage.eventType) == 3) {
window.alert("Your counter is at " + localStorage.counter);
}
}