Meer laden button niet weergeven bij geen resultaten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

13/05/2014 23:02:33
Quote Anchor link
Ik heb een functie gevonden welke voor mij resultaten ophaalt uit de database en deze weergeeft op de pagina. Ik kan via de functie een limiet opgeven hoeveel resultaten ik wilt weergeven, indien er meer resultaten nog zijn weergeeft die een laad meer resultaten button, dit werkt perfect indien er nog meer resultaten zijn.

Het probleem is dat de "weergeef meer results" button altijd wordt weergeven dus ook indien er geen resultaten zijn, hoe zorg ik ervoor dat die enkel de button weergeeft indien er nog meer resultaten zijn.

Dit is de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  <script>

        $(document).ready(function()
        {

        var track_click = 0; //track user click on "load more" button, righ now it is 0 click
        
        var total_pages = <?php echo $total_pages; ?>;
        var domeinid = <?php echo $domeinId; ?>;

        $('#results').load("../includes/autoloadscroller/autoload_process.php?val="+domeinid+"", {'page':track_click}, function() {track_click++;}); //initial data to load
      
        $(".load_more").click(function (e) { //user clicks on button
      
            $(this).hide(); //hide load more button on click
            $('.animation_image').show(); //show loading image

            if(track_click <= total_pages) //user click number is still less than total pages
            {
    
                //post page number and load returned data into result element
                $.post('../includes/autoloadscroller/autoload_process.php?val='+domeinid+'',{'page': track_click}, function(data)
                {
              
                    $(".load_more").show(); //bring back load more button
    
                    $("#results").append(data); //append data received from server
                  
                    //scroll page smoothly to button id
                    $("html, body").animate({scrollTop: $("#load_more_button").offset().top}, 500);
                  
                    //hide loading image
                    $('.animation_image').hide(); //hide loading image once data is received
      
                    track_click++; //user click increment on load button
              
                }).fail(function(xhr, ajaxOptions, thrownError) { //any errors?
                    alert(thrownError); //alert with HTTP error
                    $(".load_more").show(); //bring back load more button
                    $('.animation_image').hide(); //hide loading image once data is received
                });
              
              
                if(track_click >= total_pages-1) //compare user click with page number
                {
                    //reached end of the page yet? disable load button
                    $(".load_more").attr("disabled", "disabled");
                }
             }
            
            });
    });

    
    </script>
Gewijzigd op 13/05/2014 23:03:34 door Furio Scripting
 
PHP hulp

PHP hulp

27/11/2024 02:42:03
 
Furio Scripting

Furio Scripting

15/05/2014 00:33:07
Quote Anchor link
Niemand een idee?
 
Michael -

Michael -

15/05/2014 08:22:41
Quote Anchor link
Als er geen resultaten zijn, zou totalpages toch ook 0 moeten zijn? Dat zou de laatste if-statement toch worden opgeroepen?
Voeg daar hide() aan toe, of maak daarin nog een statement if totalpages === 0 hide()
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if(track_click >= total_pages-1) //compare user click with page number
                {
                    //reached end of the page yet? disable load button
                    $(".load_more").attr("disabled", "disabled").hide();
                }
Gewijzigd op 15/05/2014 08:25:46 door Michael -
 
Ward van der Put
Moderator

Ward van der Put

15/05/2014 08:29:17
Quote Anchor link
Op regel 47 wordt de load_more button disabled:

//reached end of the page yet? disable load button
$(".load_more").attr("disabled", "disabled");

Werkt dat wel? Maak daarvan dan eens:

$(".load_more").hide();
 
Pipo Clown

Pipo Clown

15/05/2014 09:22:41
Quote Anchor link
Dit gaat natuurlijk alleen werken wanneer je 2x een laadactie uitvoert.
Een maal MET een limiet en een maal ZONDER limiet.
De query zonder limiet mag ook een count zijn.

Die zonder limiet heb je nodig om te weten of er nog meer resultaten geladen kunnen worden.
Ik denk dat je dan ook nog bij moet houden vanaf welk item je geladen hebt.

Zijn er totaal 500 items, je hebt er 100 geladen vanf iten 300 dan zijn er nog meer te laden. Heb je er honderd geladen vanaf 400 dan heb je de laatste te pakken, dus niet meer. Denk hierbij ook aan resten zoals 100 records vanaf 300 geladen terwijl er totaal 450 items zijn.
 
Furio Scripting

Furio Scripting

16/05/2014 01:46:22
Quote Anchor link
Bedankt voor de reacties!

Ik heb al jullie code tips geprobeerd maar heeft niet mogen baten.

De button wordt standaard weergeven MAAR zodra ik erop klik wordt die indien er geen resultaten meer in de database zijn "disabled" dus dat stukje code werkt prima..

Alleen is die standaard enabled ondanks er geen resultaten zijn of te weinig.

Ik zal de code die bovenaan de pagina staat ook eens plaatsen, wellicht dat het iets duidelijk wordt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

          $items_per_page
= 3; // aantal per pagina
          $database = new database();

          // gebruik id van bedrijf.
          $q = ("SELECT * FROM beoordelingen
          WHERE domein_id = "
.$domeinId."
          AND status = 1"
);

          $result = $database->query($q);
          $total_records = mysqli_num_rows($result);
          $total_pages = ceil($total_records/$items_per_page);
?>
Gewijzigd op 16/05/2014 01:48:41 door Furio Scripting
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.