3

次のコードを使用して、jQuery、jQueryテンプレート、およびWufoojQueryAPIを使用してフォームのデータを表示しています。

<div id="people">           
    <ul>
        <script id="attendeeTemplate" type="text/x-jquery-tmpl">
            <li>
                <h4>${Field1}</h4>
                ${Field3} minutes
            </li>
             </script>
    </ul>
</div>

これはうまく機能しますが、最初の10エントリのみを表示するように制限したいと思います。現在、データベース内のすべてのエントリが表示されています(以下のJavaScriptとAPIを使用して並べ替えられています)。最高の分数から最低の分数でソートされた上位10のみを表示しようとしていることに注意してください。

JavaScriptは次のとおりです。

<script>
    function processEntries(data) {
        $.each(data.Entries, function(entriesIndex, entriesObject) {
            // Make sure this entry has all the required bits
            if (entriesObject.Field1 && entriesObject.Field3) {
                $("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul");  
            }
        });
    };

    $.wufooAPI.getEntries({
        "callback"   : processEntries,             // Name of custom function declared above
        "formHash"   : "BLAH",                   // Found by clicking "Code" button from the Form Manager, then the "API Information" button
        "sortID"   : "Field3",                   // Found by clicking "Code" button from the Form Manager, then the "API Information" button
        "sortDirection"   : "DESC",                   // Found by clicking "Code" button from the Form Manager, then the "API Information" button

    });
</script>

それをトップ10に制限する方法についての考えは非常に役立ちます!

4

3 に答える 3

3

これはうまくいくはずです:

data.Entries.slice(0,9); 
于 2012-05-12T05:00:17.260 に答える
2

データベースを使用して制限を課すことができない場合でも、次のような修正を行うことができます。

function processEntries(data) {
    var i = 0;
    $.each(data.Entries, function(entriesIndex, entriesObject) {
        // Make sure this entry has all the required bits
        if (entriesObject.Field1 && entriesObject.Field3 && i<10) {
            $("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul");
            i++;
        }
    });
};

注:これは、何らかの方法で以前に全体を注文したことを前提としています

于 2012-05-12T05:03:17.537 に答える
1

それが配列であると仮定するとdata.Entries、次を使用できますArray.slice()

$.each(data.Entries.slice(0, 9), function(entriesIndex, entriesObject) {
于 2012-05-12T05:02:30.137 に答える