2011-10-12 19 views
1

我jQuery自動完成插件的電影搜索。每部電影都有一個來自IMDb ID的ID。現在我解析這個ID來自PHP並且被包含在class =「imdbID」的範圍內。所以它看起來像這樣:jQuery自動完成。在選擇時,提醒一個值在建議的

<li>Movie title 1<span class="imdbID">tt345813</span></li> 
<li>Movie title 1<span class="imdbID">tt346413</span></li> 
<li>Movie title 1<span class="imdbID">tt789675</span></li> 
<li>Movie title 1<span class="imdbID">tt185858</span></li> 

並繼續。下面是一個實際示例:http://www.screenr.com/aH0s

現在,我想選擇一個電影並提醒該imdbID值。

如果我用這個方法:

select:function(a,b){ 
     var bbbb = $(".imdbID").text(); 
     alert(bbbb); 
} 

我得到的所有跨度的值是這樣的:

所以我的問題是,如何能我只得到的的.imdbID選定的自動完成值?

謝謝

+0

具有值實際上已經選擇了嗎?你的例子看起來像你正在選擇,但只有第一個被突出顯示。 – kinakuta

+0

它看起來像在結果列表中顯示'imdbId'。你的JSON是什麼樣的?如果你可以使它成爲自動填充的對象數組中的一個屬性,那麼稍後你可以將其拉出... –

+0

@AndrewWhitaker這是我問這個問題的地方:http://stackoverflow.com/問題/ 7735795/jquery-autocomplete-on-event-select-submit-php-value-of-which-pars-from-an,因爲我沒有答案,我想這樣做,並設置可見性imdbID隱藏並仍然提交。 – jQuerybeast

回答

2

引用您的其他問題的PHP代碼,我會做這樣的事情(請帶一粒鹽,我不知道PHP):

$tmdb = new TMDb($api_key); 
$json = json_decode($tmdb->searchMovie($_GET['term'])); 
$response = array(); 
$i=0; 
foreach($json as $movie){ 
    if(!$movie->imdb_id || $movie->adult) continue; 
    if($i >= 6) break; 
    $response[$i]['value'] = $movie->name; 
    $response[$i]['label'] = $movie->name . ' <small>(' . date('Y',strtotime($movie->released)).')</small><span><span> (' . $movie->imdb_id . ')'; 
    $response[$i]['imdbid'] = $movie->imdb_id; 
    $i++; 
} 
echo json_encode($response); 

的想法是您將imdbid添加爲您要發送給客戶端的JSON有效內容的屬性。

然後在選擇事件:

$("input").autocomplete({ 
    /* snip */ 
    select: function (event, ui) { 
     alert(ui.item.imdbid); // <-- alert the imdbid property 
    } 
}); 
+0

你想要做的是我的第一個問題。這是我想要達到的想法,但我想不出如何去做。非常感謝先生!! – jQuerybeast

+0

我最終問了兩個問題得到這個答案:) – jQuerybeast

+0

@jQuerybeast:很高興幫助! –

1

回調接收兩個參數function(event, ui)。 e.originalEvent應該爲您提供觸發選擇事件的點擊事件,以及其目標ul

$(e.originalEvent.target).find(".imdbID").text(); //Gets you the IMDB key 
+0

'ui.item'不是一個DOM元素。 –

+0

@丹尼斯先生,它不工作。 ui.item沒有提供任何內容。 – jQuerybeast

+0

更新了應該工作的答案,但Andrew的方式可能更好。 – Dennis

相關問題