begin process at 2012 05 28 08:14:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

ADODB_PAGER


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ADODB_PAGER

vendredi 2 novembre 2007 à 13:38:33 | ADODB_PAGER

daris

Bonjour!

J'utilise la class adodb_pager  de adodb .
Suite à une requete , j'arrive à  afficher mon tableau avec la pagination.tout marche .
Problème!

J'aimerai  modifier le code de la class adodb_pager ci-dessous de manière  à rajouter une colonne supplementaire(Action par exemple) pour mettre  en face de chaque ligne un bouton radio permettant le choix de la ligne. Je n'arrive pas !
Si quelqu'u à une idée. Merci d'avance

class ADODB_Pager {
    var $id;     // unique id for pager (defaults to 'adodb')
    var $db;     // ADODB connection object
    var $sql;     // sql used
    var $rs;    // recordset generated
    var $curr_page;    // current page number before Render() called, calculated in constructor
    var $rows;        // number of rows per page
    var $linksPerPage=10; // number of links per page in navigation bar
    var $showPageLinks;
    var $gridAttributes = 'width=100% border=1 bgcolor=white';
   
    // Localize text strings here
    var $first = '<code>|&lt;</code>';
    var $prev = '<code>&lt;&lt;</code>';
    var $next = '<code>>></code>';
    var $last = '<code>>|</code>';
    var $moreLinks = '...';
    var $startLinks = '...';
    var $gridHeader = false;
    var $htmlSpecialChars = true;
    var $page = 'Page';
    var $linkSelectedColor = 'red';
    var $cache = 0;  #secs to cache with CachePageExecute()
     
    //----------------------------------------------
    // constructor
    //
    // $db    adodb connection object
    // $sql    sql statement
    // $id    optional id to identify which pager,
    //        if you have multiple on 1 page.
    //        $id should be only be [a-z0-9]*
    //
    function ADODB_Pager(&$db,$sql,$id = 'adodb', $showPageLinks = false)
    {
    global $PHP_SELF;
   
        $curr_page = $id.'_curr_page';
        if (empty($PHP_SELF)) $PHP_SELF = htmlspecialchars($_SERVER['PHP_SELF']); // htmlspecialchars() to prevent XSS attacks
       
        $this->sql = $sql;
        $this->id = $id;
        $this->db = $db;
        $this->showPageLinks = $showPageLinks;
       
        $next_page = $id.'_next_page';   
       
        if (isset($_GET[$next_page])) {
            $_SESSION[$curr_page] = (integer) $_GET[$next_page];
        }
        if (empty($_SESSION[$curr_page])) $_SESSION[$curr_page] = 1; ## at first page
       
        $this->curr_page = $_SESSION[$curr_page];
       
    }
   
    //---------------------------
    // Display link to first page
    function Render_First($anchor=true)
    {
    global $PHP_SELF;
        if ($anchor) {
    ?>
        <a href="<?php echo $PHP_SELF,'?',$this->id;?>_next_page=1"><?php echo $this->first;?></a> &nbsp;
    <?php
        } else {
            print "$this->first &nbsp; ";
        }
    }
   
    //--------------------------
    // Display link to next page
    function render_next($anchor=true)
    {
    global $PHP_SELF;
   
        if ($anchor) {
        ?>
        <a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->AbsolutePage() + 1 ?>"><?php echo $this->next;?></a> &nbsp;
        <?php
        } else {
            print "$this->next &nbsp; ";
        }
    }
   
    //------------------
    // Link to last page
    //
    // for better performance with large recordsets, you can set
    // $this->db->pageExecuteCountRows = false, which disables
    // last page counting.
    function render_last($anchor=true)
    {
    global $PHP_SELF;
   
        if (!$this->db->pageExecuteCountRows) return;
       
        if ($anchor) {
        ?>
            <a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->LastPageNo() ?>"><?php echo $this->last;?></a> &nbsp;
        <?php
        } else {
            print "$this->last &nbsp; ";
        }
    }
   
    //---------------------------------------------------
    // original code by "Pablo Costa" <pablo@cbsp.com.br>
        function render_pagelinks()
        {
        global $PHP_SELF;
            $pages        = $this->rs->LastPageNo();
            $linksperpage = $this->linksPerPage ? $this->linksPerPage : $pages;
            for($i=1; $i <= $pages; $i+=$linksperpage)
            {
                if($this->rs->AbsolutePage() >= $i)
                {
                    $start = $i;
                }
            }
            $numbers = '';
            $end = $start+$linksperpage-1;
            $link = $this->id . "_next_page";
            if($end > $pages) $end = $pages;
           
           
            if ($this->startLinks && $start > 1) {
                $pos = $start - 1;
                $numbers .= "<a href=$PHP_SELF?$link=$pos>$this->startLinks</a>  ";
            }
           
            for($i=$start; $i <= $end; $i++) {
                if ($this->rs->AbsolutePage() == $i)
                    $numbers .= "<font color=$this->linkSelectedColor><b>$i</b></font>  ";
                else
                     $numbers .= "<a href=$PHP_SELF?$link=$i>$i</a>  ";
           
            }
            if ($this->moreLinks && $end < $pages)
                $numbers .= "<a href=$PHP_SELF?$link=$i>$this->moreLinks</a>  ";
            print $numbers . ' &nbsp; ';
        }
    // Link to previous page
    function render_prev($anchor=true)
    {
    global $PHP_SELF;
        if ($anchor) {
    ?>
        <a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->AbsolutePage() - 1 ?>"><?php echo $this->prev;?></a> &nbsp;
    <?php
        } else {
            print "$this->prev &nbsp; ";
        }
    }
   
    //--------------------------------------------------------
    // Simply rendering of grid. You should override this for
    // better control over the format of the grid
    //
    // We use output buffering to keep code clean and readable.
    function RenderGrid()
    {
         global $gSQLBlockRows; // used by rs2html to indicate how many rows to display
        include_once(ADODB_DIR.'/tohtml.inc.php');
        ob_start();
        $gSQLBlockRows = $this->rows;
        rs2html($this->rs,$this->gridAttributes,$this->gridHeader,$this->htmlSpecialChars);
        $s = ob_get_contents();
        ob_end_clean();
        return $s;
    }
   
    //-------------------------------------------------------
    // Navigation bar
    //
    // we use output buffering to keep the code easy to read.
    function RenderNav()
    {
        ob_start();
        if (!$this->rs->AtFirstPage()) {
            $this->Render_First();
            $this->Render_Prev();
        } else {
            $this->Render_First(false);
            $this->Render_Prev(false);
        }
        if ($this->showPageLinks){
            $this->Render_PageLinks();
        }
        if (!$this->rs->AtLastPage()) {
            $this->Render_Next();
            $this->Render_Last();
        } else {
            $this->Render_Next(false);
            $this->Render_Last(false);
        }
        $s = ob_get_contents();
        ob_end_clean();
        return $s;
    }
   
    //-------------------
    // This is the footer
    function RenderPageCount()
    {
        if (!$this->db->pageExecuteCountRows) return '';
        $lastPage = $this->rs->LastPageNo();
        if ($lastPage == -1) $lastPage = 1; // check for empty rs.
        if ($this->curr_page > $lastPage) $this->curr_page = 1;
        return "<font size=-1>$this->page ".$this->curr_page."/".$lastPage."</font>";
    }
   
    //-----------------------------------
    // Call this class to draw everything.
    function Render($rows=10)
    {
    global $ADODB_COUNTRECS;
   
        $this->rows = $rows;
       
        if ($this->db->dataProvider == 'informix') $this->db->cursorType = IFX_SCROLL;
       
        $savec = $ADODB_COUNTRECS;
        if ($this->db->pageExecuteCountRows) $ADODB_COUNTRECS = true;
        if ($this->cache)
            $rs = &$this->db->CachePageExecute($this->cache,$this->sql,$rows,$this->curr_page);
        else
            $rs = &$this->db->PageExecute($this->sql,$rows,$this->curr_page);
        $ADODB_COUNTRECS = $savec;
       
        $this->rs = &$rs;
        if (!$rs) {
            print "<h3>Query failed: $this->sql</h3>";
            return;
        }
       
        if (!$rs->EOF && (!$rs->AtFirstPage() || !$rs->AtLastPage()))
            $header = $this->RenderNav();
        else
            $header = "&nbsp;";
       
        $grid = $this->RenderGrid();
        $footer = $this->RenderPageCount();
        $this->RenderLayout($header,$grid,$footer);
       
        $rs->Close();
        $this->rs = false;
    }
   
    //------------------------------------------------------
    // override this to control overall layout and formating
    function RenderLayout($header,$grid,$footer,$attributes='border=1 bgcolor=beige')
    {
        echo "<table ".$attributes."><tr><td>",
                $header,
            "</td></tr><tr><td>",
                $grid,
            "</td></tr><tr><td>",
                $footer,
            "</td></tr></table></div>";
    }
}


?>




Cette discussion est classée dans : page, rs, var, adodb, if


Répondre à ce message

Sujets en rapport avec ce message

variable et url ???? [ par fab_59 ] bonjour, j'aimerais savoir comment on configure la page php, si la variable est dans l'url, du type http://var.site.fr/comment peut on faire pour recu recuperations des variables XML d'une page asp dans du PHP [ par macao45 ] Bonjour,je cherche à recuperer les variables XML generer par une page asp d'un serveur en IIS ( ou je n'ai aucun droit ) dans une form en php sous lin intégration d'un site dans une page PHP [ par David_monchy ] Bonjour à tous,J'ai créé un site, dans lequel je passe entre les pages des paramètres.(exemple: www.monsite.com/index.php?a=1&b=2)Maintenant, je voudr if qui ne fonctionne pas correctement [ par winnie39 ] Bonjour à tous,Voila je dois créer un site pour un stage, mais j' ai un problème de condition.Voila la page se compose d' une image et d' un texte, ma validation w3c [ par ratbone ] Bonjour tout le monde, je suis graphiste et j'ai un p'tit souci avec un code php de pagination pour un site que je fais pour un client. Vous pourrez v Pagination avec ADODB_PAGER et PHP [ par daris ] Bonjour à tous, J'utulise les la librairie adodb avec le langage php. Je rencontre une difficulté: En effet, j'arrive à extraire la première page de m probleme login/redirect avec IE mais pas avec FF [ par stooff ] Bonjour a tout le site,Pour vous expliquer brievement le sujet ... je developpe une interface web client, dans celle ci le client doit etre redirigé v probleme de redirection avec fct header() [ par djadito ] j'ai crié une page d'authentification en html, et pour verifié les champs saisieds le formulaire avec celle de ma base, j'ai utilise une page verifica SPIP, php et javascript soucis défilement informations [ par oceane751 ] bonjour (encore moi, oui je sais ;) )j'ai du code qui me permet de faire défiler des informations j'utilise : du phpdu spipdu javascript mon code


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,544 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales