mysql - 如何在laravel中使用ajax更新视频播放当前时间
问题描述
<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;
}
推荐阅读
- c# - 如果在阻塞代码下方一直使用 .ConfigureAwait(false) ,阻塞异步调用之后的代码是否会在相同的上下文中继续?
- java - 为什么 testng 将属性 a 分配给相同的地址?
- python - 405 方法不允许,添加到购物车烧瓶 python
- python - 在 Django Rest Framework API 中过滤没有直接关系的元素
- php - 存在的索引的未定义索引
- python - 在循环中生成多个 pandas 数据帧,具有变量变量名称
- java - 有谁知道如何将这一行 Java 代码翻译成 Python?
- autodesk-forge - Autodesk Forge API:“此帐户不存在。” 错误
- angular - 如何在新的 Angular GMaps 组件上可视化 GeoJson?
- python - 为什么'无法读取缓存在:.cache-
' 在 Spotipy 中进行身份验证时出现警告并且代码无限期运行?