我正在使用javascript来启动和停止计时器(秒表)。 我想要的是当用户按下停止按钮时,数据(当时的时间)将存储在我的MySQL数据库中。那可能吗?如果是,我需要添加什么作为代码? (我只是PHP的入门者,如果有人可以添加一个小解释那么这将是很好的,所以我可以从中学习)
以下脚本是我正在使用的javascript代码:
var clsStopwatch = function () {
var startAt = 0;
var lapTime = 0;
var now = function () {
return (new Date()).getTime();
};
this.start = function () {
startAt = startAt ? startAt : now();
};
this.stop = function () {
lapTime = startAt ? lapTime + now() - startAt : lapTime;
startAt = 0;
};
this.time = function () {
return lapTime + (startAt ? now() - startAt : 0);
};
};
var x = new clsStopwatch();
var $time;
var clocktimer;
function pad(num, size) {
var s = "0000" + num;
return s.substr(s.length - size);
}
function formatTime(time) {
var h = m = s = ms = 0;
var newTime = '';
m = Math.floor(time / (60 * 1000));
time = time % (60 * 1000);
s = Math.floor(time / 1000);
ms = time % 1000;
newTime = pad(m, 2) + ':' + pad(s, 2) + ':' + pad(ms, 2);
return newTime;
}
function show() {
$time = document.getElementById('time');
update();
}
function update() {
$time.innerHTML = formatTime(x.time());
}
function start() {
clocktimer = setInterval("update()", 1);
x.start();
}
function stop() {
x.stop();
clearInterval(clocktimer);
}
接下来是我用来在我的数据库中存储数据的PHP代码,它位于一个单独的页面上。
define('DB_NAME', 'dbname');
define('DB_USER', 'user');
define('DB_PASSWORD', 'pass');
define('DB_HOST', 'host');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) { die('could not connect: ' . mysql_error()); }
$db_selected = mysql_select_db(DB_NAME, $link);
if (!$db_selected) { die('can not use ' . DB_NAME . ': ' . mysql_error()); }
$sql="INSERT INTO game (name, company, email, time) VALUES
('".$_POST['name']."','".$_POST['company']."','".$_POST['email']."','".$_POST['time']."')";
if (!mysql_query($sql)) { die('Error: ' . mysql_error()); }
mysql_close();
和我的HTML提交表单:
<body onload="show();">
<form action="highscore.php" method="post"/>
name:<br/>
<input type="text" name="name"/><br/>
company:<br/>
<input type="text" name="company"/><br/>
email:<br/>
<input type="text" name="email"/><br/>
Time: <span id="time"></span><br/>
<!--<input type="text" name-"time">-->
<input type="button" value="start" onclick="start();">
<input type="submit" value="stop" onclick="stop();">
<br/><br/>
</form>
</body>
也许解决方案可能是将数据发布到隐藏的输入字段中,但我仍然在努力让这个数据有效。
答案 0 :(得分:1)
试试这个:
function stop() {
x.stop();
document.getElementById('counter').value = formatTime(x.time());
clearInterval(clocktimer);
}
在表格上:
<input type="hidden" value="" id="counter" name="counter" />
答案 1 :(得分:0)
使用MySQLi代替MySQL,因为MySQL存在一些严重的安全问题