2013-08-17 27 views
0

我的錯誤在通過javascript訪問wikipedia信息框中?
(我使用CodeIgniter的框架)我的錯誤在通過JavaScript訪問維基百科信息框?

頁面控制器

$data = array(
       'title' => 'My Title', 
       'country' => 'My Heading' 
     ); 

    $countrycodes = ['au', 'us']; 
    $countrynames = ['Australia', 'United_States']; 
    error_log(print_r($page, TRUE)); 
    $key = array_search($page, $countrycodes); 
    error_log(print_r($key, TRUE)); 
    if($key !=null){ 
    $data['country'] = $countrynames[$key]; 
    } 

    $this->load->helper('url'); 
    $this->load->helper('utility'); 

    $this->load->view('templates/header', $data); 
    $this->load->view('pages/'.$page, $data); 
    if(!is_null($key)){ 
    $this->load->view('templates/infobox', $data); 
    } 
    $this->load->view('templates/footer', $data); 

AU頁

...

<div style =" position:absolute;top:90%; background: red;"> 
<?php echo $country; ?></div> // prints Australia. 
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/country.js"></script> 
// variable isnt formed yet to be picked up by javascript. 

信息模板

國家的JavaScript

$(window).load(function(){ 
     var searchTerm= $(".info-box").attr("id"); 

     alert(searchTerm); 
     //searchTerm= "Australia"; 

     var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
     $.getJSON(url,function(data){ 
      wikiHTML = data.parse.text["*"]; 
      $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
      $("#result").append($wikiDOM.find('.infobox').html()); 
     }); 
}); 

我也試過身體的onload = 「功能();」

browser source

+2

我認爲你的錯誤分析是錯誤的。首先,所有的PHP都運行。所有變量都被回顯。然後該頁面被髮送到瀏覽器。然後JavaScript運行。如果它不適用於Javascript,請檢查源代碼是否有錯誤。也許PHP打印錯誤。也許Javascript會提取錯誤的東西。但是對於Javascript而言,PHP沒有時間問題。 – Sven

+0

功能在哪裏base_url() – Vector

+0

我同意@Sven這個問題的前提是錯誤的。這是一個純粹的Javascript問題。從我所看到的,你試圖從錯誤的div中獲取國家的價值(它不在.info-box div中)。 – rebroken

回答

0

使用身體的onload = 「功能();」確實有用。我想我忘了插入一條線,然後跳過槍。

function loadWiki(){ 
     var searchTerm= $(".info-box").attr("id"); 

     var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
     $.getJSON(url,function(data){ 
      wikiHTML = data.parse.text["*"]; 
      $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
      $("#result").append($wikiDOM.find('.infobox').html()); 
     }); 
    }