0

データベースから返されたデータの処理。すべてのデータは、具体的には 1 つの td のテーブルに返されます。返されたデータのマークアップはそのままです

<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>

私のエラー処理では、6 番目の 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>');
        }
    }

残念ながら、すべてのコンテンツを 1 つの li に出力してしまいます。「、」でそれらを分割する方法を理解し、分割後に各アイテムの個別のリを作成したいと思います。

4

1 に答える 1

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 コレクションに手動で処理する必要がある場合があります。

于 2012-12-06T04:02:09.027 に答える