点击视频时计算观看次数

时间:2018-12-25 01:56:31

标签: ajax laravel bootstrap-modal

这是情况。我有一个允许用户上传视频的项目。每当您单击视频时,都会弹出Bootstrap-Modal,并且视频自动开始播放。现在,我还实现了单击视频的操作,该操作被视为观看次数,因为单击视频时它会自动开始。现在这是我搞砸的地方,打开模态时对视图进行计数,这不是我想要的,我希望在单击视频时对视图进行计数。我将在下面显示您的代码。有人可以帮我解决这个问题吗?

 //Video
<video class="video1" id="cx"  preload="auto" align="middle" data- 
toggle="modal"  data-target="#mymodal" data-user-id="{{$usero->id}}"
        data-video-src="{{$usero->intro_video}}"
        data-video-views="{{$usero->clicks}}"   style="  
   cursor:pointer;"><source  src="{{$usero->intro_video}}#t=15"  alt="Video 
   Unavailable"   id="" ></source>

  //Ajax request
  $('#mymodal').on('show.bs.modal show', function (event) {

var button = $(event.relatedTarget);


var user_id = button.data('user-id') ;
var video_src = button.data('video-src');
var video_views = button.data('video-views');


var modal = $(this);
modal.find('#video_source').attr('src', video_src);
modal.find('#video_views').text(video_views);

// send ajax request to increment video count
$.ajax({
    method: 'GET',
    url: 'getmsg',
    dataType: "json",
    contentType: "application/json",
    data : {
        requested_id: user_id
    },
    success: function(data){

    }
});
})

1 个答案:

答案 0 :(得分:0)

从您提供的代码示例中,我想您的模态中还有另一个视频标记,您正在show.bs.modal事件上更新其src属性。 如果是这种情况,则应为该视频元素提供一个ID(例如video2),然后您可以对此调用onplay事件,并应将ajax代码放入该事件列表中,就像这样

$('#video2').onplay(function(){
    $.ajax({
        method: 'GET',
        url: 'getmsg',
        dataType: "json",
        contentType: "application/json",
        data : {
            requested_id: user_id
        },
        success: function(data){

        }
    });
   });.

此外,如果需要,您可以从ajax请求的成功处理程序更新视图计数。

希望这会有所帮助。