Visualizzazione dei risultati da 1 a 2 su 2

Discussione: paging record

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    paging record

    ciao volevo sapere come e' possibile fare il paging di un po di record in javascript

    premetto che i record non sono presi dal db ma ho cmq un array, ogni elemento dell'array e' un record.

  2. #2

    ......

    Ciao.
    prova questo:
    Codice PHP:
    <?php
    $db
    =mysql_connect('localhost','','') or die('Error connecting to the server');
          
    mysql_select_db('page') or die('Error selecting database');
          
    $result=mysql_query('SELECT name FROM news') or die ('Error performing query'); 

            function 
    createJavaScript($dataSource,$arrayName='rows'){
          
    // validate variable name
          
    if(!is_string($arrayName)){
            die(
    'Invalid variable name');
          }

        
    // initialize JavaScript string
          
    $javascript='<script>var '.$arrayName.'=[];';

        
    // check if $dataSource is a file or a result set
          
    if(is_file($dataSource)){
           
            
    // read data from file
            
    $row=file($dataSource);

            
    // build JavaScript array
            
    for($i=0;$i<count($row);$i++){
              
    $javascript.=$arrayName.'['.$i.']="'.trim($row[$i]).'";';
    $javascript.="\n";
            }
          }

          
    // read data from result set
          
    else
          {
            
    $i 0;
              
    $tempOutput='';

              while(
    $row=mysql_fetch_array($dataSource,MYSQL_NUM))
                {
                   
    $tempOutput.= $arrayName.'['.$i.']'."=\"".trim($row[0]).'";';
                
    $tempOutput.= "\n";
    $i++;
              }
              
    $javascript.= $tempOutput;
                
            
          }

          
    $javascript.='</script>'."\n";
     
          
    // return JavaScript code
          
    return $javascript;
        }
    echo 
    createJavaScript($result,'rows');
    ?>
    <html>
    <head>
    <title>Paginating Records with JavaScript</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script language="javascript">
      var recsPage,page,numPages;

      // set number of records per page
      recsPage=4;

      // calculate number of pages
      numPages=Math.round(rows.length/recsPage);

      // define createDivs function
      createDivs=function(){

        // create records containing <div>
        var recsDiv=document.createElement('div');
        recsDiv.id='records';

        // create paging link containing <div>
        var linksDiv=document.createElement('div');
        linksDiv.id='paginglinks';

        // insert <div> elements into document structure
        document.body.appendChild(recsDiv);
        document.body.appendChild(linksDiv);
        }          

        // define displayRecords function
        displayRecords=function(page){
           var recsDiv=document.getElementById('records');
           if(!recsDiv){return;}
           var div=document.createElement('div');
           div.id='records';
           if(!page){page=1;}

           // extract records from rows array
           for(var i=(page-1)*recsPage;i<((page-1)*recsPage)+recsPage;i++){
             if(rows[i]){

               // insert records as paragraph elements 
               var p=document.createElement('a');
    p.href='pippo.htm';

               p.appendChild(document.createTextNode(rows[i]));
               div.appendChild(p);
               }
             }

             // replace old records node with new records node
             recsDiv.parentNode.replaceChild(div,recsDiv);
           }

           // define generateLinks function
           generateLinks=function(page){
             var linksDiv=document.getElementById('paginglinks');
             if(!linksDiv){return;}
             var div=document.createElement('div');
             div.id='paginglinks';

             // assignn default value to array pointer
             if(!page){page=1;}

             // create previous link
             if(page>1){
               var a=document.createElement('a');
               a.href='#';
               a.id=parseInt(page)-1;
               a.style.fontFamily='Verdana';
               a.style.fontSize='11px';
               a.style.fontWeight='bold';
               a.appendChild(document.createTextNode('<<Previous'));
               div.appendChild(a);
               a.onclick=function(){

                 // update record list
                 displayRecords(this.id);

                 // update paging links
                 generateLinks(this.id);
               } 
             }

             // create numbered links
             for(var i=1;i<=numPages;i++){
               if(i!=page){

                 // create paging links
                 div.appendChild(document.createTextNode(' '));
                 var a=document.createElement('a');

                 // assign paging links attributes
                 a.href='#';
                 a.id=i;
                 a.style.fontFamily='Verdana';
                 a.style.fontSize='11px';
                 a.style.fontWeight='bold';
                 a.appendChild(document.createTextNode(i));

                 // append link to <div> container
                 div.appendChild(a);

                 // append blank space
                 div.appendChild(document.createTextNode(' '));

                 // assign onclick event handler to paging links
                 a.onclick=function(){

                   // update records list
                   displayRecords(this.id);

                   // update paging links
                   generateLinks(this.id);
                 }
               } 
               else{

                 // the current page is not linked
                var span=document.createElement('span');
                span.style.fontFamily='Verdana';
                span.style.fontSize='11px';
                span.style.fontWeight='bold';
                span.appendChild(document.createTextNode(i));
                div.appendChild(span);
              }
            }

            // create next link
            if(page<numPages){
              var a=document.createElement('a');
              a.href='#';
              a.id=parseInt(page)+1;
              a.style.fontFamily='Verdana';
              a.style.fontSize='11px';
              a.style.fontWeight='bold';
              a.appendChild(document.createTextNode('Next>>'));
              div.appendChild(a);
              a.onclick=function(){

                // update records list
                displayRecords(this.id);

                // update paging links
                generateLinks(this.id);
              }
            }

            // replace old links node with new links node
            linksDiv.parentNode.replaceChild(div,linksDiv);
          }

          // execute functions when page is loaded 
          window.onload=function(){
            if(document.getElementById&&document.createElement){

              // create containing <div> elements
              createDivs();

              // display records
              displayRecords(page);

              // generate paging links
              generateLinks(page);
            }
          }
    </script>
    <style type="text/css">
    /*define some styles*/

    p {
      font: bold 16px Arial, Helvetica, sans-serif;
      color: #000;
    }

    #records {
      width: 50%;
      background: #ccf;
      font: normal 12px "Arial", Helvetica, sans-serif;
      color: #000;
      border: 1px solid #000;
    }

    #records a { display:block;
      margin-top: 5px;
    }
    </style>
    </head>
    <body>
    <h1>Records Listing</h1>
    </body>
    </html>


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.