2012-12-06 37 views
0

處理從數據庫返回的一些數據。所有數據都以表格形式返回,具體在一個td中。返回的數據的標記是這樣的jQuery AJAX錯誤處理如何將返回的錯誤消息分離爲單獨的文件

<table border=1> 
    <tr> 
     <td>Field Name</td> 
     <td>Field Value</td> 
    </tr> 
    <tr> 
     <td>SuccessFlag</td> 
     <td>False</td> 
    </tr> 
    <tr> 
     <td>ResponseMessage</td> 
     <td>Invalid email address, Invalid User Name, etc., etc</td> 
    </tr> 
</table> 

在我的錯誤處理,我能夠到達第六TD並顯示錯誤沒有問題。

success: function(data) { 
    var answer = $(data).find("td:eq(3)").text(); 
    var message = $(data).find("td:eq(5)").text(); 
    if (answer==="True") { 
     $("#bottomContent").load("page.php #div"); 
     } else { 
     $('#processing').hide(); 
     $('input[type="text"], input[type="password"]').val(""); 
     $('#messageBox').show().html('<ul><li>' + message + '</li></ul>'); 
     } 
    } 

不幸的是,它會輸出所有的內容在一個鋰。我想弄清楚如何在''上拆分它們,並在拆分後爲每個項目創建一個單獨的li。

回答

2

我知道這個解決方案沒有使用jQuery,但你有沒有考慮過使用knockoutjs。它顯着簡化了客戶端數據綁定。

<ul data-bind="foreach: errorMessages "> 
    <li> 
     <label data-bind="text: title"></label> 
    </li> 
</ul> 

<script> 
// Use knockout observable array 
var errorMessages = ko.observableArray(); 

success: function(data) { 
var answer = $(data).find("td:eq(3)").text(); 
var message = $(data).find("td:eq(5)").text(); 
if (answer==="True") { 
    $("#bottomContent").load("page.php #div"); 
    } else { 
    $('#processing').hide(); 
    $('input[type="text"], input[type="password"]').val(""); 

    // Knockout array will automatically bind to your DOM 
    this.errorMessages(message); 
    } 
} 
</script> 

您可能需要將您的'消息'變量手動處理爲JSON集合而不是表格。