2012-03-29 122 views
0

我有一個jquery/php投票系統我正在處理。一旦用戶點擊了一個投票按鈕,jquery模式將彈出,並且他們必須點擊「確認」確認他們的投票。這將發送一個ajax請求來更新數據庫,而不是。點擊確認後,模式將關閉。我希望能夠在頁面上動態更新投票數量。我可以輕鬆地從mySQL表中獲取這些數據。我的問題是,這是如何返回給我,然後動態更新html頁面?jquery在POST後更新html與返回的mysql數據

目前該頁面什麼都不做,所以對用戶來說,他們看起來並不像他們投了票。理想情況下,我想更新總票數,並注入顯示他們投票的圖像。

function vote(el, id) { 
    $.ajax({ 
     type: 'POST', 
     url: '/path/morepath/', 

     dataType: 'json', 
     data: { 
      'action': 'castVote', 
      'vote': id 
     }, 
     success: function (data) {} 
    }); 
    $.modal.close(); 
} 

回答

1

在服務器端,使用包含投票數和可能的圖像路徑的JSON對象響應POST請求。

然後在AJAX回調裏面,數據將會是那個對象。然後你可以使用jQuery在DOM中選擇一個元素,並調用.text().html()來更新內容。

+0

這個答案幫助確認了我已經在網上的各種來源閱讀有關。 – MAZUMA 2012-04-03 16:50:39

0

可以使用幾個不同的選項,如改變投票數的值或HTML內容:

... 
     success: function(data) 
     { 
      var $newTotal = ...//get total from data 
      $('voteCountContainer').html($newTotal); // or you can also use .val() if it's an input 
     }  
... 

希望,幫助,

1

如果你傳遞不佳形成的數據從PHP返回,您可以通過給它一些結構,然後使它成爲json以便於使用,從而讓它變得更加簡單:

$sqlResult = ...; 
$responseArray = array(); 
$responseArray['result'] = true; //or false if it failed 
$responseArray['data'] = $sqlResult; 
print json_encode($responseArray); 

在您真的希望頁面能夠正確響應ajax響應之前,您必須確保您的響應數據正確解析。

裏面你的成功的功能,嘗試console.log'ing你的反應,看看是什麼樣子

console.log(data); 

如果有東西,你可以在可靠的回報數據參考,做一次檢查它:

success: function(data) { 
    if(data.result == 'true') { 
    $('someElement.someClass').someFunction(); 
    } 
}