2013-01-17 85 views
0

我有以下的Ajax調用無指示jQuery的AJAX調用完成

function update_ledger_amount(id) { 
    $.ajax({ 
     type: "POST", 
     url: "/ledgeritems/UpdateAmount", 
     data: "Id=" + id + "&Amount=" + $('#ledger_edit_amount_input_' + id).val(), 
     success: function (str) { 
      var result = str.split('|'); 
      alert(str); 
      if (result[0] == 'success') { 
       set_display_message('Item updated', 'success'); 
       load_ledger_month($('#BankAccountId').val(), $('#StartDate').val()); 
      } 
      else { 
       alert('bad'); 
       set_display_message(result[1], 'error'); 
      } 
     }, 
     error: function (request, status, error) { 
      alert(error); 
     } 
    }); 
} 

我遇到的問題是,我得到的成功或錯誤沒有警告。看着流量通過螢火蟲可以看我的反應是一個簡單的

success 

我相信問題可能有與內容類型的響應做,它顯示爲文本/ JavaScript的。我在想也許我需要做一些不同的事情來處理這種內容類型。

+3

所以你不要離開我們掛..它的工作原理,當你改變響應的內容類型? –

+0

@ExplosionPills - 該死的權利。然而,我敢打賭,這種質疑導致請求/響應生命週期中的家庭主義思想的擴展 - ./headbangs - 我希望他們要麼解決它,要麼回來 –

+0

如果有效,我肯定不會尋求幫助。 – Jhorra

回答

0

使用dataType作爲JSON和發送響應爲JSON在你的控制器(PHP)..你可以通過做...... echo json_encode(array('success'=>'success'))

JQUERY

$.ajax({ 
    type: "POST", 
    url: "/ledgeritems/UpdateAmount", 
    data: "Id=" + id + "&Amount=" + $('#ledger_edit_amount_input_' + id).val(), 
    dataType:'json', 
    success: function (str) { 
     alert(str.success); //in mycase.. you can do your stuff here 
     /*var result = str.split('|'); 
     alert(str); 
     if (result[0] == 'success') { 
      set_display_message('Item updated', 'success'); 
      load_ledger_month($('#BankAccountId').val(), $('#StartDate').val()); 
     } 
     else { 
      alert('bad'); 
      set_display_message(result[1], 'error'); 
     }*/ 
    }, 
    error: function (request, status, error) { 
     alert(error); 
    } 
}); 

PHP

..... 
echo json_encode(array('success'=>'success')); 

這發送成功爲json,你可以得到在success功能ajax

+0

我認爲這可能是最好的路線。 – Jhorra

+0

謝謝... :) ..快樂的編碼 – bipen

0

在您的成功處理程序中放置一個try catch塊。我猜這是在這條線上失敗

ar result = str.split('|');

+0

這應該是一個評論 –

+0

我正在用Firebug看它,我沒有得到任何錯誤。 – Jhorra

+0

你能不能在分裂陳述之前發出警報,看它是否到達那裏? – gurvinder372

0

你正在做一個POST ajax不GET。阿賈克斯的數據部分應該是形式:

data: { name: "John", location: "Boston" } 
0

,因爲要附加到PARAMS您的要求刪除URL行

type = "POST", 

從jQuery 1.8成功開始,不推薦使用錯誤和完整,而是使用done,fail和allways。 http://api.jquery.com/jQuery.ajax/#jqXHR

的POST的語法是這樣的:

data = {id:"something", Amount:"someval"};