2013-11-05 52 views
0

「這個」 DIV我有我的PHP頁面上的MySQL查詢返回的所有結果在一個div ...有點像這樣:的jQuery/AJAX負荷點擊

echo '<div class="results">' . $result . '</div>'; 

當DIV「結果「被點擊,我想只是該div重新加載。我試圖做到這一點:

$(this).load('testratings.php this').hide().fadeIn(2000); 

但顯然在.load()中的「this」是不正確的......在這裏尋找語法。

+0

'testratings.php'是否會返回多個DIV與這個類,但你只是想插入這個DIV的新值? – Barmar

+0

@Barmar正確...有10個div在testratings.php上是.results,我只是希望它返回點擊的那個 –

+0

在這種情況下,請嘗試'$(this).load('testratings.php .results: eq('+ $('。results')。index(this)+')')。hide()。fadeIn(2000);'這會尋找一個基於索引的解決方案....如果新標記重新排列的HTML .... –

回答

0

你需要給每個DIV一個唯一的ID:

echo echo '<div class="results"> 
      <div class="results_inner" id="results_"' . $resultid++ . '">' . $result 
      . '</div></div>'; 

然後使用jQuery的:

$(".results").on("click", ".results_inner", function() { 
    $(this).parent().load('testratings.php #' + this.id).hide().fadeIn(2000); 
}); 

因爲​​加載到DIV的內容,應用它,你需要嵌套DIV到,它不會取代DIV。你可以使用.replace(),但是你需要編寫自己的回調函數,因爲它沒有簡寫。

此解決方案假定$resultid計數器將從一個呼叫到下一個呼叫保持一致。如果適用,您可以使用其他方式爲每個結果分配唯一的ID。

+0

這仍然是加載所有的結果到1格 –

+0

我不明白怎麼可能是。該代碼清楚地表明只將特定ID加載到DIV中。這些ID是正確的,對嗎? – Barmar

+0

剛剛更新了使用事件委託的答案,因爲'.results_inner' DIV將被動態替換。但我不認爲這與你描述的問題有關。 – Barmar

0

div你想重新加載一個ID並像下面這樣稱呼它。

$(this).load('testratings.php #ReloadThisDiv').hide().fadeIn(2000);