<script>
var vid = document.getElementById("player");
$(function() {
var timeout;
$("#player").on("playing pause", function(e) {
// Save reference
var v = this
// Clear previous timeout, if any
clearTimeout(timeout)
// Call immediately if paused or when started
performaction(v.currentTime, v.duration)
// Set up interval to fire every 5 seconds
if (e.type === "playing") {
timeout = setInterval(function() {
performaction(v.currentTime, v.duration)
}, 5000)
}
})
function performaction(currentTime, duration) {
console.log(currentTime);
console.log(' ajax action goes here');
var data = { pause_time : currentTime };
$.ajax({
type: "POST",
url: '/instructor/promo_video/84',
data: data,
success: function() {
console.log("Value added");
}
})
}
})
</script>
在我的数据库中,我有一个视频表,其中的列名为
pause_time
。现在,如果我使用这个js代码来计算视频当前播放时间,那么我将在控制台中获得间隔5秒后的时间。我想在laravel中使用ajax将这个时间发送到数据库。以及如何在控制器中取currentTime
值。
提前感谢!!
如果你创建了一个视频表,那么你应该制作一个视频模型:
php artisan make:model Video
当您在前端使用POST方法时,还需要传递CSRF令牌。
const data = {
_token: YOUR_TOKEN,
pause_time : currentTime,
};
要从数据库中获取数据,您应该使用ORM,所以:
$video = Video::where(SOME_CONDITIONS, value)->first();
$currentTime = $video->pause_time;
要从前端获取数据,您应该使用$request:
public function yourController(Request $request)
{
$currentTime = $request->pause_time;
}