为什么我的保存时间功能不起作用?PHP + AJAX JS.
Why my save time function doesn't work? PHP + AJAX JS
我正在研究一个代码,允许我在我的数据库中保存用户在查看页面上花费的时间,当他单击"关闭"按钮时,通过 AJAX 我在 php 页面上发布一些参数以插入到数据库 (Mysql)。
这是我的代码:
窗口.php(我正在查看的页面)
<?php $start_time = microtime(true);
?>
*page content*
<div align="center"><input type="button" value="Close" onclick="open()"></div>
<script language="javascript" type="text/javascript">
function open()
{
var start = <?php echo $start_time; ?>;
var end = <?php echo $end = microtime(true); ?>;
var uid = <?php echo $_SESSION['uid']; ?>;
var corso = <?php echo $_SESSION['cod']; ?>;
$.ajax({
url: "http://www.mysite.it/template/pages/save.php",
type: "POST",
data: "startt="+start+"&endt="+end+"&uid="+uid+"&corso="+corso,
success: function(){ // trigger when request was successfull
alert("Recorded!");
},
})
}
</script>
然后我的 php 脚本页面:
保存.php
<?php
require "connection.php";
$inizio = $_POST['startt'];
$fine = $_POST['endt'];
$uid = $_POST['uid'];
$corso = $_POST['corso'];
$duration = $fine-$inizio;
$hours = (int)($duration/60/60);
$minutes = (int)($duration/60)-$hours*60;
$seconds = (int)$duration-$hours*60*60-$minutes*60;
$stringa = ($hours .":" .$minutes .":" .$seconds);
$sql = "INSERT INTO visua (utente, corso, tempo)
VALUES ($stringa, $uid, $corso)";
$result = $link->mysql_query($sql);
if ($result) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $link->error;
}
$link->close();
?>
实际上无法理解为什么不起作用,即使AJAX的"成功"部分向我显示消息,但DB上没有新行
谢谢你的建议。
<script language="javascript" type="text/javascript">
function open()
{
var start = '<?php echo $start_time; ?>';
var end = '<?php echo $end = microtime(true); ?>';
var uid = '<?php echo $_SESSION['uid']; ?>';
var corso = '<?php echo $_SESSION['cod']; ?>';
$.ajax({
url: "http://www.mysite.it/template/pages/save.php",
type: "POST",
data: "startt="+start+"&endt="+end+"&uid="+uid+"&corso="+corso,
success: function(){ // trigger when request was successfull
alert("Recorded!");
},
})
}
</script>
<?php
require "connection.php";
$inizio = $_POST['startt'];
$fine = $_POST['endt'];
$uid = $_POST['uid'];
$corso = $_POST['corso'];
$duration = $fine-$inizio;
$hours = (int)($duration/60/60);
$minutes = (int)($duration/60)-$hours*60;
$seconds = (int)$duration-$hours*60*60-$minutes*60;
$stringa = ($hours .":" .$minutes .":" .$seconds);
$sql = "INSERT INTO visua (utente, corso, tempo)
VALUES ('$stringa', '$uid', '$corso')";
$result = $link->mysql_query($sql);
if ($result) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $link->error;
}
$link->close();
?>
也许它会起作用。在此之前,您需要检查 ajax 值或是否通过。
试试这段代码,
<script type="text/javascript">
function open(){
var start = '<?php echo $start_time; ?>';
var end = '<?php echo $end = microtime(true); ?>';
var uid = '<?php echo $_SESSION['uid']; ?>';
var corso = '<?php echo $_SESSION['cod']; ?>';
$.ajax({
url: "http://www.mysite.it/template/pages/save.php",
type: "POST",
data: {
startt : start,
endt : end,
uid : uid,
corso : corso
},
success: function(){ // trigger when request was successfull
alert("Recorded!");
}
});
}
</script>
另外,一个可以帮助您的逻辑问题。如果您需要计算用户关闭页面时的结束时间,请在 save.php 文件中计算结束时间为,
<?php
$fine = microtime(true);
//Also try including single-quote in your query for insert
$sql = "INSERT INTO visua (utente, corso, tempo) VALUES ('$stringa', '$uid', '$corso')";
?>
这将为您提供预期的结果。
希望这有帮助!!
相关文章:
- PHP AJAX图片上传示例不上传
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 不确定我在PHP AJAX中使用的是什么开发模式
- Php ajax return json or html
- PHP Ajax 表单提交 .什么也没发生
- 如何在发送时不打开新页面的情况下使用php/ajax发送表单
- 通过post-php-ajax发送
- 如何使用php-ajax将值从mysqldb获取到dropdownbox
- 使用JavaScript的PHP-Ajax调用将值存储在DB中
- php ajax within ajax
- PHP-AJAX复选框过滤器使用数据标记属性
- 如何在jquery中对php/ajax传递的数组进行切片
- 使用 javascript/jquery/any 动态创建 html 页面客户端.如果不可能,如何使用 php/ajax
- 为什么我的保存时间功能不起作用?PHP + AJAX JS.
- 如何在不使用 PHP/AJAX 重新加载网页的情况下自动更新内容
- JQUERY + PHP + AJAX 不起作用
- JavaScript 重置 PHP/AJAX 中的填充字段
- 数据库更新的用户确认 - php + Ajax
- PHP Ajax 自动完成多个字段
- Autosuggestion Javascript/PHP/AJAX Code