Grabbing screen resolution and displaying results based on the size

前端 未结 3 453
闹比i
闹比i 2021-01-16 18:23

I\'m trying to show results from a database based on screen resolution size. I posted a question last week about how to get the width and was able to come up with this jquer

3条回答
  •  鱼传尺愫
    2021-01-16 18:57

    Using Ajax, this is what needs to be done

    
    
    ....

    That file.php would then run your database query and return a nicely formatted set of results (i.e. html table) based on the h and w parameters sent via ajax which tell you the height and width of the screen. To do this just set the $page variable depending on the size of the $_GET['w'] and $_GET['h'] variables. See below:

     1600 $maxresults = 20, else = 10
      $currentpage = $page;
      $page = $page * $maxresults;
      $numpages = QuickQuery("SELECT COUNT(id) FROM books WHERE visible=1");
      $numpages = mysql_result($numpages, 0);
      $numpages = $numpages/$maxresults-1;
      $result = GetBooksByRangeID($page, $maxresults);//Show  pages at a time  
      //DisplayResults($result); 
      echo $results; // in a nice format (i.e. table) to be inserted into div via ajax
    ?>
    

    You can calculate $maxresults as follows:

    if($w > 640) && ($h > 480) $maxresults = 5;
    if($w > 800) && ($h > 600) $maxresults = 7;
    if($w > 1024) && ($h > 768) $maxresults = 12;
    ....
    if($w > 2560) && ($h > 1600) $maxresults = 21;
    

    Or you can group these statements by width (as I think thats less important than height, meaning less scrolling down for the user):

    if ($w <= 1024) {
      if ($h >= 768) $maxresults = 12;  // 1024x(768 or higher)
      else if ($h >= 600) $maxresults = 8; // 1024x(600~768)
      else  $maxresults = 6; // 1024x(599 or below)
    }
    else if ($w <= 1280) {
      if ($h >= 1024) $maxresults = 14;  // 1280x(1024 or higher)
      else if ($h >= 960) $maxresults = 12; // 1280x(960~1024)
      else if ($h >= 800) $maxresults = 10; // 1280x(800~960)
      else if ($h >= 768) $maxresults = 8; // 1280x(768~800)
      else  $maxresults = 6; // 1280x(768 or below)
    }
    //and so on
    

    see: http://en.wikipedia.org/wiki/Display_resolution#Computer_monitors

    Revision

    You code for populating maxresults is very poorly written, thats why it does not work. Try this:

    This will either output -1 if w and h are not being sent or it will return 24 or 12 and so on depending on your screen width. Learn to do some basic debugging on your code. It is difficult for me to debug your code without having all of it to hand.

提交回复
热议问题