我有一个计时器让我们说60分钟,我想每隔1秒钟保存一次计时器。我的代码在本地完美运行,但是当我在线上传时。它不再起作用了。我得到“500(内部服务器错误)”请帮助我。非常感谢您的帮助。非常感谢你们!
数据库
CREATE TABLE IF NOT EXISTS `timer` (
`id` int(6) NOT NULL,
`time` int(6) NOT NULL COMMENT 'in minutes',
`remaining_time` int(6) NOT NULL COMMENT 'seconds',
`type_id_fk` int(6) NOT NULL,
`section` int(6) NOT NULL,
`user_id_fk` int(6) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
控制器
public function updatetimer() {
$this->Mpractice->updateTimer();
}
模型
function updateTimer() {
//TIMER VAR
$timer_id = $this->input->post('timer_id');
$remaining_time = $this->input->post('remainingTime');
$this->db->trans_start();
$this->db->query("UPDATE `toefl`.`timer` SET `remaining_time` = '$remaining_time' WHERE `timer`.`id` = $timer_id;");
$this->db->trans_complete();
}
查看
<div class="clock"></div>
<form method="post" action="">
<input type="hidden" id="remainingTime" value="<?= $this->Mpractice->get_timer($type); ?>">
<input type="hidden" id="timer_id" name="timer_id" value="<?= $this->Mpractice->get_timer_id($type); ?>">
</form>
脚本
<script>
$(document).ready(function () {
// GET REMAINING TIME
var doUpdate = function () {
$('#remainingTime').each(function () {
var count = parseInt($(this).val());
if (count !== 0) {
$(this).val(count - 1);
}
});
};
// Schedule the update to happen once every second
setInterval(doUpdate, 1000);
// UPDATE TIMER EVERY 1SECOND
setInterval(function () {
$("#remainingTime, #timer_id").autosave({
url: "<?= site_url('practice/updatetimer'); ?>",
type: "POST",
dataType: "html",
grouped: true, //send data for all fields with the autosave
success: function () {
}
});
}, 1000);
});
</script>
答案 0 :(得分:0)
解决方案1:先检查一下,您已在表单中使用** short tag [ <?= ?>]
**,请在您的实时服务器中登录或关闭phpinfo短标记。
解决方案2:如果您在代码中遇到500内部服务器错误,则很可能是语法问题或SQL查询问题。请检查一下。
如果您使用AJAX,请检查控制台以获取所有PHP ERORR作为响应。