从MySQL数据库中的秒表Javascript存储时间

时间:2014-02-20 15:39:14

标签: javascript php mysql

我正在使用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>

也许解决方案可能是将数据发布到隐藏的输入字段中,但我仍然在努力让这个数据有效。

2 个答案:

答案 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存在一些严重的安全问题