2012-12-26 20 views
0

我試圖將一些AJAX代碼從獨立文件移動到我的控制器中的某個函數中,並且似乎無法讓它在自動完成函數中顯示JSON數據風景。我已驗證該函數通過直接訪問函數URL來確實返回JSON編碼數據。無法在CodeIgniter中使用jQuery自動完成顯示返回的json數據

下面是從我的觀點的頭我的JavaScript:

<script type="text/javascript"> 
$(document).ready(function(){ 
var ac_config = { 
    source: <?php echo base_url() . 'admin/lookup_tmdb_movie_titles'; ?> 
    select: function(event, ui){ 
     $("#title").val(ui.item.title); 
     $("#year").val(ui.item.year); 
     $("#imdb_link").val(ui.item.imdb_link); 
    }, 
    minLength:2, 
    position: { 
     my: "left top", 
     at: "left bottom", 
     collision: "none", 
     of: "#title.ui-autocomplete-input.ui-autocomplete-loading" 
    } 
}; 
$("#title").autocomplete(ac_config); 
}); 
</script> 

下面是在管理控制功能(我只是用硬編碼的測試數據,直到我得到這個工作正常):

function lookup_tmdb_movie_titles() 
{ 
    $term = 'test'; 

    // TEST DATA 
    $title['title'] = 'test'; 
    $title['label'] = 'test (2012)'; 
    $title['value'] = 'test'; 
    $title['year'] = '2012'; 
    $title['imdb_link'] = 'testlink'; 
    $matches[] = $title; 

    // convert into JSON format and output 
    $matches = array_slice($matches, 0, 5); 

    $this->output->set_output(json_encode($matches)); 
} 

我也嘗試過輸出JSON以下兩種方式,所有這些工作,如果我直接通過URL的功能,但沒有一個在視圖本身工作。

print json_encode($matches); 

$data['json'] = json_encode($matches); 
    $this->load->view('admin/json_view', $data); 

我已經看了很多在計算器上,並通過谷歌的職位(因此上述不同的輸出方式),但沒有什麼似乎已解決問題呢。

+0

你使用螢火蟲或任何其他調試器來檢查發送和接收的Ajax數據 –

+0

剛剛啓用Firebug,並發現一個簡單的語法錯誤,導致源無法加載。感覺像個白癡。謝謝艾哈邁德!現在一切都好! – sensoria

回答

0

首先你應該試試這個:

source: "<?php echo site_url(admin/lookup_tmdb_movie_titles); ?>" 

那麼這可能是:

function lookup_tmdb_movie_titles() 
{ 
    $term = 'test'; 

    // TEST DATA 
    $title['title'] = 'test'; 
    $title['label'] = 'test (2012)'; 
    $title['value'] = 'test'; 
    $title['year'] = '2012'; 
    $title['imdb_link'] = 'testlink'; 
    $matches[] = $title; 

    // convert into JSON format and output 
    $matches = array_slice($matches, 0, 5); 
    var_dump($matches); //comment this if everythings ok 
// echo json_encode($matches); ->uncomment this if everythings ok 

} 

然後打開Firebug啓動Ajax請求,並檢查在控制檯的響應。

+0

是的,就是這樣,簡單的語法錯誤!哎呀!感謝艾哈邁德建議Firebug。 – sensoria

+0

是的,我只是紅色艾哈邁德是正確的! – sbaaaang

相關問題