Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环仅使用php、ajax和javascript执行最后一个数组元素_Javascript_Php_Jquery_Arrays_Ajax - Fatal编程技术网

循环仅使用php、ajax和javascript执行最后一个数组元素

循环仅使用php、ajax和javascript执行最后一个数组元素,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,嗨,朋友们,我正试图从循环中保存数据,这是我的代码 <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body onload="searchVideo();"> <?php ini_set('max_execution_time',

嗨,朋友们,我正试图从循环中保存数据,这是我的代码

<html>
 <head>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
 </head>
<body onload="searchVideo();">
<?php
    ini_set('max_execution_time', 300);
    $query = "SELECT * FROM `playlists`";
    $result = mysqli_query($mysql,$query);
    while($row=mysqli_fetch_assoc($result)){
          $id=$row['id'];
          $playlists=$row['playlists'];
          $myArray = explode(',', $playlists);
              $length =  sizeof( $myArray);
              $myArray[0]=PLrEnWoR732-BHrPp_Pm8_VleD68f9s14-
              $myArray[1]=PLFgquLnL59ak1QNHmrUSjNM6WTegpgX__
              for ($i=0; $i<$length; $i++){
               echo "
                  <script>
                    var pageToken = '';
                    var numOfResult = 0;
                    var maxResults = 200;
                    function searchVideo(){
                    var separator = ',';
                    $.getJSON('https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&pageToken=' + pageToken + '&playlistId=$myArray[$i]&key=APIKEY&callback=?',function(data){
                    var l = data.items.length;
                    pageToken = data.nextPageToken;
                    numOfResult += l;
                    var itemUrl = '';
                    var videoids = [];
                    for(var i = 0; i < l; i++) {
                    if( i == 0) {
                        separator = ',';
                       }
                   else {
                       separator = ',';
                   }
                   var videoid = data.items[i].snippet.resourceId.videoId;
                   var title = data.items[i].snippet.title;

                   $.ajax({
                     method: 'POST',
                     url:    'add.php',
                    data: { title: title, videoid: videoid }
                   })
                  .done(function(data) {

                 });
              }

            if( numOfResult <= maxResults) {
               searchVideo();

            }
    });

}

    </script>
    ";
              }

    }



?>

for(变量i=0;i
这里我将是最后一个元素的索引,所以只存储最后一个项目。
您必须在循环中循环ajax调用以保存所有元素。

在循环外定义函数searchVideo,并组织使用不同的参数调用它。在循环中更改全局变量或searchVideo的输入参数。
现在得到这个结果是因为最终执行了这个函数的最后一个距离。

这些行看起来很奇怪。
$myArray[0]=PLrEnWoR732-BHrPp_Pm8_VleD68f9s14-
。这是假设为字符串吗?在它的当前格式中,应该会引发错误。您正在添加
n*m
乘以相同的脚本元素,其中
n
播放列表
表中的行数,
m
列中的播放列表数
播放列表
of每行O。o@Andreas我不太明白,你能告诉我错误在哪里吗there@Andreas我只需要更改每个循环的播放列表,因此我给出了$myArray[$I]通过数组的哪些循环你正在重新定义相同的函数,每次都使用不同的函数体。我认为这不会正常工作。既然ajax调用在循环中,我如何通过循环进行ajax调用
<?php
 $title = mysqli_real_escape_string($mysql,$_POST['title']);
 $videoid = mysqli_real_escape_string($mysql,$_POST['videoid']);
 $thumbnail_url = 'http://img.youtube.com/vi/'.$videoid.'/hqdefault.jpg';

  $sql = "INSERT INTO ytfb(name,video_name,thumbnail_url)     VALUES('$title','$videoid','$thumbnail_url')";
    $create_post_query=mysqli_query($mysql,$sql);
        if(!$create_post_query)
      {
        die("Connection failed".mysqli_error($mysql));
       }
 ?>
 for(var i = 0; i < l; i++) {
                    if( i == 0) {
                        separator = ',';
                       }
                   else {
                       separator = ',';
                   }
                   var videoid = data.items[i].snippet.resourceId.videoId;
                   var title = data.items[i].snippet.title;