2016-06-29 4 views
1

Я использую API Википедии для отображения и отображения информации о темах.Использование API Википедии для вытягивания и отображения содержимого из массива тем

код у меня работает отлично для одной теме:

$(document).ready(function(){ 

    $.ajax({ 
     type: "GET", 
     url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Dementia&callback=?", 
     contentType: "application/json; charset=utf-8", 
     async: false, 
     dataType: "json", 
     success: function (data, textStatus, jqXHR) { 

     var markup = data.parse.text["*"]; 
     var i = $('<div></div>').html(markup); 

     // remove links as they will not work 
     i.find('a').each(function() { $(this).replaceWith($(this).html()); }); 

     // remove any references 
     i.find('sup').remove(); 

     // remove cite error 
     i.find('.mw-ext-cite-error').remove(); 

     $('#article').html($(i).find('p')); 


     }, 
     error: function (errorMessage) { 
     } 
    });  

}); 

<div id="article"></div> 

В приведенном выше коде, тема «Деменция» показал:

&page=Dementia 

Код выше работает отлично для SINGLE, но теперь я хотел бы изменить его, чтобы перебрать массив из тем и использовать значение «wikipedia_page_url» из каждой темы в массиве, чтобы определить, какую страницу тянуть, а затем выводить содержимое для каждой темы на страница:

<?php foreach ($resident_conditions as $resident_condition) { ?> 

    <?php 
    $condition_id = $resident_condition['condition_id']; 
    $condition = sw::shared()->conditions->getForID($condition_id); 
    $wikipedia_page_url = $condition['wikipedia_page_url']; 
    ?> 

    <h6><?php echo $condition['condition_name']; ?></h6> 
    <div id="<?php echo $condition['condition_name']; ?>"> 

    <!-- This is where I want to place the content pulled from Wikipedia for each topic --> 

    </div> 

<?php } ?> 

«wikipedia_page_url» значение каждой темы определяет, какая страницу, чтобы вытащить из Википедии, продемонстрированная в коде ниже:

Как я могу изменить сценарий JS выше для работы тянуть и отображать содержание для каждой темы? Я знаю, что нужно подставить значение каждого «wikipedia_page_url» внутри сценария, как это:

url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=<?php echo $condition['wikipedia_page_url']; ?>&callback=?", 

Но я не знаю, где взять его отсюда. Какие-либо предложения?

$(document).ready(function(){ 
 

 
     $.ajax({ 
 
      type: "GET", 
 
      url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Tourette_syndrome&callback=?", 
 
      contentType: "application/json; charset=utf-8", 
 
      async: false, 
 
      dataType: "json", 
 
      success: function (data, textStatus, jqXHR) { 
 

 
      var markup = data.parse.text["*"]; 
 
      var i = $('<div></div>').html(markup); 
 

 
      // remove links as they will not work 
 
      i.find('a').each(function() { $(this).replaceWith($(this).html()); }); 
 

 
      // remove any references 
 
      i.find('sup').remove(); 
 

 
      // remove cite error 
 
      i.find('.mw-ext-cite-error').remove(); 
 

 
      $('#article').html($(i).find('p')); 
 

 

 
      }, 
 
      error: function (errorMessage) { 
 
      } 
 
     });  
 
    
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="article"></div>

ответ

1

Вы можете сохранить темы в яваскрипта массив, а затем цикл через них.

$(document).ready(function(){ 
    var topics = ['Dementia', 'Topic2', 'Topic3']; 

    for(var i = 0; i < topics.length; i++) { 
     $.ajax({ 
      type: "GET", 
      url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page="+topics[i]+"&callback=?", 

     ... the rest of your ajax config 
     }); //end of ajax 
    } //end of loop 
}); //end of .ready(); 

 Смежные вопросы

  • Нет связанных вопросов^_^