[英]codeigniter and ajax autosave doesn't work
我有一个计时器,例如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>
解决方案1:首先检查它,您已经在表单中使用了** short tag [ <?= ?>]
**,请检查您的实时服务器中phpinfo短标记是打开还是关闭。
解决方案2:如果代码中出现500个内部服务器错误,则很可能是语法问题或SQL查询问题。 请检查一下。
如果您使用AJAX,请检查控制台以获取所有PHP ERORR的响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.