2016-06-29 3 views
1

위키 백과 API를 사용하여 주제에 관한 정보를 가져오고 표시합니다.Wikipedia API를 사용하여 주제 배열의 컨텐츠를 당겨서 표시하십시오.

나는 하나의 주제에 대한 좋은 작품이 코드 :

&page=Dementia 

코드는 위의를 위해 잘 작동 : 위의 코드에서

$(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> 

는 주제로 표시 "치매"입니다 단일 주제,하지만 지금은 주제의 배열을 통해 루프를 수정하고 배열에서 각 항목의 "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 스크립트를 수정할 수 있습니다?

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

그러나 나는 여기에서 그것을 가지고 위치를 잘 모릅니다 : 나는이 같은 스크립트 내부의 각 "wikipedia_page_url"의 값을 대체해야 알고있다. 어떤 제안?

$(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();