2011-09-04 17 views
1

我第一次嘗試使用JQuery和jqGrid來執行數據庫的標準CRUD前端。下面的文檔,我設法讓添加行工作,但我想發出成功消息。我嘗試這樣做:在JQuery/jqGrid上閱讀服務器響應

$("#list2").jqGrid('navGrid', '#pager2', {add:true, view:false, edit:false, del:false}, 
        {}, 
        {closeAfterAdd:true, 
        afterComplete: function(response, postdata, formid){ 
          alert(response); 
        } 
        }, 
        {}, 
        {}, 
        {}); 

服務器端做的插入和呼應,我想提醒中成功的消息,但警告對話框只說:[Object object]。我將不勝感激關於如何處理服務器響應的一些幫助。

+0

取決於內容。如果服務器發送json,請在這裏尋找解決方案: http://stackoverflow.com/questions/3334341/jquery-javascript-json-to-string-variable-dump – Alleo

+0

找到了錯誤,它是'response.responseText'來獲取服務器響應。 – ravl1084

+0

@Alleo在這種情況下它不是JSON響應,只是一個字符串的回聲。但是因爲表格中數據的JSON響應是在幕後完成的,所以我不知道如何手動輸入響應文本 – ravl1084

回答

3

afterComplete回調函數的第一個參數與第一個參數complete回調函數jQuery.ajax具有相同的格式。所以它的jqXHRXMLHttpRequest(在使用舊的jQuery 1.4.x的情況下)取決於使用的jQuery版本。

所以你應該使用alert(response.responseText)而不是alert(response)

+0

謝謝。響應對象的類型正是我需要找到的,以搗鼓它:) – ravl1084

+0

@ ravl1084:不客氣!我剛纔讀到你已經找到了解決方案。它總是更好,因爲你會記住更好的知識。 – Oleg

0

您在提醒response參數本身,而不是該對象的任何特定屬性。我沒有用在此之前的回調,但是基於documentation

響應是從服務器返回(如果有的話)

如果你返回從任何數據的數據服務器,您可以將其稱爲alert(response.<property>);而不僅僅是alert(response)

同樣,我沒有專門使用這個回調函數,所以我不確定是否有數據的包裝屬性發送回來或沒有,但基本上,你需要引用你想要顯示的特定屬性,而不僅僅是response對象。

UPDATE:我從你的評論中看到你找到了答案。 alert(response.responseText)

我希望這有助於!