2010-09-28 88 views
1

我在我看來有這段代碼。如何在彈出窗口中顯示此成功消息

我的數據庫添加消息後顯示完美,但我的網格不顯示更新的結果。如果我繼續

return true;

當我點擊提交按鈕,我收到彈出窗口馬上,然後加入到數據庫?這顯示了我在網格中更新的結果。

回答

1

如果在提交函數結束時返回true,則瀏覽器將轉到表單的action屬性中的url。我認爲如果你在ajax調用中關注了表單數據,你應該總是返回false。您需要將更新的網格作爲ajax成功方法的一部分。

你不能有ajax彈出窗口,仍然讓表單提交正常的方式。

$(function() { 
      $('#form4').submit(function() { 
       ...  
       $.ajax({ 
       ... 
        success: function (result) { 
         ... 
         // update grid 
         grid_container = $("#grid").html(''); 
         $("<table>").appendTo(grid_container); 
         for (ii = 0; ii < result.grid.length; ++ii) { 
         tr = $("<tr>").appendTo(table); 
         for (jj=0; jj < result.grid[ii].length; ++ii) { 
          td = $("<td>").text(result.grid[ii][jj]).appendTo(tr); 
         } 
         } 

         // show success message 
         alert('Saved NewServiceTypeCategory Successfully. Thank you!'); 
        } 
       }); 
       return false; 
      }); 
     }); 

現在你所要做的就是讓你的服務器端處理程序返回帶有網格數據的XML。

+0

感謝MattSmith如何在最後顯示成功消息? – kumar 2010-09-28 02:29:02

1

AJAX請求是異步的,因此它在回調完成前完成表單提交例程,這可能會解釋您得到的結果。我認爲可能會有一個異步設置,您可以關閉,以便首先完成操作/回調。

+0

感謝Brian,該怎麼做?你能告訴我嗎? – kumar 2010-09-28 02:27:16

+0

檢查了這一點:第一個選項有一個異步屬性,你設置爲false。在這裏閱讀更多:http://api.jquery.com/jQuery.ajax/請注意,可能會有影響。您可能需要考慮重構您的代碼以通過回調傳遞true/false ... – 2010-09-28 13:56:48

1

基於你的代碼,據我所知,你沒有辦法加載新的數據。

當您正在加載新數據時,因爲submit事件成功執行它的默認操作,該操作將提交給服務器並刷新頁面。

另一方面,return false;阻止此操作(包括刷新頁面),而是運行XHR。

你可以做的是:

返回新的數據作爲 XHR的結果,並相應地對其進行分析。

+0

請您告訴我什麼是XHR? – kumar 2010-09-28 02:28:09

+0

Xml HTTP請求= AJAX – sheeks06 2010-09-28 03:15:09