Autor Zpráva
Lisoe
Profil *
Zdravím,

mám funkci v jquery, kterou volám jednou za určitý čas, která mi tahá z data json souboru. Narazil jsem ovšem problém na limit záznamů, kdy json mi zobrazuje pouze prvních 50 záznamů, následně musím přidat parametr &page=2. Můj původní funkční kód:

    function update(){
        $.get( "data.json", function( data ) {
             $( ".display-1" ).html( data.pagination.object_count );

             var html_code = '';
            
             $.each(data.attendees, function(index, element) {
                    var name = element.profile.name;
                    
                    html_code+= '<div class="col-lg-3 float-left mb-2">' + name + '</div>';
             });
            
            $( "#attendee" ).html( html_code );
        });
    }

V nové verzi jsem zatím chtěl vyřešit pouze data pro druhou stránku, tzn. chtěl jsem zavolat stejné funkce a až na konec zavolat část " $( "#attendee" ).html( html_code );", což jsem zjistil že je problém, vzhledem k tomu že ve chvilku, kdy jsem mimo "$.get()({});", data v html_code se mi nepředávají dál.

    function update(){
        var html_code = '';
        $.get( "data.json", function( data ) {
            
             $.each(data.attendees, function(index, element) {
                    var name = element.profile.name;
                    
                    html_code+= '<div class="col-lg-3 float-left mb-2">' + name + '</div>';
             });
            
        });
        $.get( "data.json?page=2", function( data ) {
            
             $.each(data.attendees, function(index, element) {
                    var name = element.profile.name;
                    
                    html_code+= '<div class="col-lg-3 float-left mb-2">' + name + '</div>';
             });
            
        });
        
      $( "#attendee" ).html( html_code );
    }

Jak je možné nejlépe řešit tuto situaci?


Díky za rady
Kajman
Profil
Můžete upravit data.json, aby na nějaký parametr vracel více záznamů, nebo zavolat oba požadavky a zpracovat data, až se vrátí oba.
Viz api.jquery.com/jquery.when
Lisoe
Profil *
Kajman:
Díky moc, bohužel do výstupů data.json nemůžu vstupovat. Každopádně rada v jquery.when zafungovala, díky!

    function update(){
        $.when( $.get( "data.json" ), $.get( "data.json?page=2" ) ).done(function( a1, a2 ) {

            var page_1 = a1[ 0 ]; 
            var page_2 = a2[ 0 ]; 

            var html_code = '';
            $.each(page_1.attendees, function(index, element) {
                var name = element.profile.name;

                html_code+= '<div class="col-lg-3 float-left mb-2"> ' + name + '</div>';
            }); 
            $.each(page_2.attendees, function(index, element) {

                var name = element.profile.name;

                html_code+= '<div class="col-lg-3 float-left mb-2"> ' + name + ' </div>';
            });    

            $( "#attendee" ).html( html_code );
        });    
    }

Ještě se zeptám, ja toto řešit v cyklu? Tzn. že chci kontrolovat, zda jsou nějaké záznamy v data.json?page= "x" (stránkoval bych, dokud jsou záznamy) a procházet je, dokud tam jsou, tak si je ukládat to html_code a v případě že nejsou, tak ukončit?

Moc díky!

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0