即使在刷新之后,也在DB中返回相同的数组值

时间:2018-01-03 17:30:30

标签: javascript php arrays ajax mysqli

有一个arr变量,用于保存用户在视频中暂停时捕获的所有时间元素,但每次刷新页面时arr的值都保持不变,即使我以另一种方式进行活动。

有人可以告诉我为什么数据库中的值没有变化???

下面是HTML文件,它重定向到PHP文件以进行数据库连接。

HTML

 <html lang="en">
   <head>
     <title>Video.js | HTML5 Video Player</title>
     <link href="http://vjs.zencdn.net/5.19/video-js.css" rel="stylesheet">
     <script src="http://vjs.zencdn.net/ie8/1.1/videojs-ie8.min.js"></script>
     <script src="http://vjs.zencdn.net/5.19/video.js"></script>
     <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" 
             integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=" 
             crossorigin="anonymous"></script>
   </head>

   <body> 
     <video id="example_video_1" class="video-js vjs-default-skin" controls 
            preload="none" width="640" height="264" 
            poster="http://vjs.zencdn.net/v/oceans.png" data-setup="{}">
       <source src="C:\xampp\htdocs\Ai_Edutech_trial_project\video js\video-js-
                    6.4.0\examples\simple-embed\HTML Tutorial for Beginners - 00 - 
                    Introduction to HTML.mp4" type="video/mp4">
       <track kind="captions" src="C:\xampp\htdocs\Ai_Edutech_trial_project\video 
                   js\video-js-6.4.0\examples\simple-embed\HTML Tutorial for Beginners - 00 - 
                   Introduction to HTML [English].vtt" srclang="en" label="English" default>
       <p class="vjs-no-js">To view this video please enable JavaScript, and 
          consider upgrading to a web browser that 
          <a href="http://videojs.com/html5-video-support/" 
             target="_blank">supports HTML5 video</a>
       </p>
     </video>

     <script type="text/javascript">
       function ajax_post_one(count, duration, tot_time, arr) {
         // Create our XMLHttpRequest object 
         var hr = new XMLHttpRequest();
         var url = "my_parse_file_one.php";

         alert(count);
         alert(tot_time);

         var num_pause = count;
         var tt = tot_time;
         var time_arr = arr;
         var dur = duration;
         var vars = "count=" + num_pause + "&tot_time=" + tt +
                    "&arr=" + time_arr + "&duration=" + dur;

         hr.open("POST", url, true);
         hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
         hr.onreadystatechange = function () {
           if (hr.readyState == 4 && hr.status == 200) {
             var return_data = hr.responseText;
             document.getElementById("status").innerHTML = return_data;
           }
         }

         hr.send(vars);
         document.getElementById("status").innerHTML = "processing..."; 
       }

       $(document).ready(function () {
         var player = videojs('example_video_1');
         var pause_t = 0;
         var tot_time = 0;
         var duration = 0;
         var count = 0;
         var arr = new Array();

         player.ready(function () {
           // alert("Working");
         });

         player.on("pause", function () {
           pause_t = player.currentTime();
           tot_time = tot_time + pause_t;
           arr = arr + pause_t;
         });

         player.on("play", function () {});
         player.on("play", function () {
           count = count + 1;
         });

         // This tells the total duration of the video... 
         player.one('loadedmetadata', function () {
           duration = player.duration();
         });

         var video = videojs('example_video_1').ready(function () {
           var player = this;
           player.on('ended', function () {
             alert(tot_time);
             alert(arr);
             ajax_post_one(count, duration, tot_time, arr);
           });
         });
       });
     </script>

     <p> Status down here</p>
     <div id="status"></div>
   </body>
 </html>

PHP

 <?php
   $servername = "localhost"; 
   $username = "root";
   $password = "";

   // Create connection
   $conn = new mysqli($servername, $username, $password);

   // Check connection
   if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
   } 
   echo "Connected successfully";

   // $db = mysqli_select_db("ajax", $conn);

   // Selecting Database
   mysqli_select_db($conn,"videojs"); 

   //MySQL Query to read datao
   $num_pause =($_POST['count']);
   $tot_time =($_POST['tot_time']);
   $time_arr =($_POST['arr']);
   $duration =($_POST['duration']);

   echo "$num_pause";
   echo "$tot_time";

   $sql = "INSERT INTO info (num_pause, duration, tot_time, time_arr)
   VALUES ('$num_pause', '$tot_time','$duration','$time_arr')";
   if ($conn->query($sql) === TRUE) {
     echo "New record created successfully";
   } else {
     echo "Error: " . $sql . "<br>" . $conn->error;
   }
 ?>

1 个答案:

答案 0 :(得分:0)

我认为你的php存在错误,为了从DB更新一些数据,使用“UPDATE”,而不是“INSERT”。您可以使用jquery $ .post进行POST请求,方便。用于测试PHP代码直接从浏览器控制台提供不同的数据

@Before("@annotation(ValidateBeforeBuild)")