循环通过两个JSON数组Ajax

时间:2016-03-07 00:45:09

标签: javascript php jquery json ajax

我尝试使用前一个上一个ajax调用的id从Json文件中获取数据,该调用基于第一个<{1>}中的id循环遍历第二个数组

我试过了

    $(document).on('click', '.stories', function(e) {
    e.preventDefault();
         var request = $.ajax({
            url: 'includes/functions.php?job=front_title',
            cache: false,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            type: 'get'
        });


         request.done(function (output) {

        if (output.result === 'success') {     
       var n = output.data[0].title_count;
            $('.blog').empty();
       for (var i=0; i<n; i++) {
            var storytitle = output.data[i].story_view;
            var id = output.data[i].titleID;


            var request2 = $.ajax({
            url: 'includes/functions.php?job=story_episodes',
            cache: false,
            data: 'id=' + id,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            type: 'get'
            });

            request2.done(function (output2) {

            if (output2.result === 'success') {     
            var n2 = output2.data[0].episode_count;
            for (var i=0; i<n2; i++) {
                var titles =  output2.data[i].title;
                console.log(storytitle + " " + titles);
            }
        }


        else {
                console.log('faileds');
            }

        });

   }

   } else {
                console.log('failed');
            }

        });
});

当我检查我的控制台时,storyTitle有一个值并循环遍历所有标题。 我试过调试,发现第二个for循环只执行了一次,在执行request2.done之后,它在第一个for循环完成所有循环之后返回到第一个for循环,它执行第二个for循环。 我不知道错过了哪里。我需要帮助。

1 个答案:

答案 0 :(得分:0)

最后解决了问题......将我的代码更改为......

    $(document).on('click', '.stories', function(e) {
    e.preventDefault();
         var request = $.ajax({
            url: 'includes/functions.php?job=front_title',
            cache: false,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            type: 'get'
        });


         request.done(function (output) {

        if (output.result === 'success') {     
       var n = output.data[0].title_count;
            var jsonArray = $(jQuery.parseJSON(JSON.stringify(output.data))).each(function() {  
         var id = this.titleID;
         var CLASS = this.story_view;


            var request2 = $.ajax({
            url: 'includes/functions.php?job=story_episodes',
            cache: false,
            data: 'id=' + id,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            type: 'get'
            });

            request2.done(function (output2) {

            if (output2.result === 'success') {
                var jsonArray2 = $(jQuery.parseJSON(JSON.stringify(output2.data))).each(function() {  
                var id2 = this.id;
                console.log(id + " " + id2);

            })
        }
        })

   })
   } else {
                console.log('failed');
            }

        });
})

它工作正常....感谢Swapnil Godambe