Paginazione jQuery - PHP

Marcello.Fiore

Nuovo Utente
14 Giu 2016
10
1
3
35
Salve a tutti, ho un piccolo problema, sto creando uno scrip che estrapoli record da un db mysql, questi risultati una volta elaborati con php vengono visualizzati nella stessa pagina da dove si effettua la ricerca.. praticamente nasconde un div e mostra un altro div dove ci saranno i risultati... arrivato a questo punto in fondo alla pagina inserisco la paginazione... con il link alle altre pagine con metodo GET.. ma una volta cliccato sulla pagina da visualizzare tipo pagina due mi manda su un altra pagina... mi sapete dare delle dritte in merito?
POSTO UN PO DI CODICE...
LINK PAGINAZIONE
Codice:
if ($all_pages > 1){
  if ($pag > 1){
  echo "<li><a aria-label='Previous' href='javascript:AjaxCall('', 'GET', 'cerca.php?kategorie=".$kateg."&pag=" . ($pag - 1). "', 'testo')'><span aria-hidden='true'>&laquo;</span></a></li>";
  }
  // faccio un ciclo di tutte le pagine
  for ($p=1; $p<=$all_pages; $p++) {
  // per la pagina corrente non mostro nessun link ma la evidenzio in blod
  // all'interno della sequenza delle pagine
  if ($p == $pag) {
  echo "<li class='active'><a href='#'>".$p."</a></li>";
  }
  // per tutte le altre pagine stampo il link
  else {
  echo "<li><a id='aa' href=\"" . $_SERVER['PHP_SELF'] . "?kategorie=".$kateg."&pag=" . $p . "\">";
  echo $p . "</a></li>";
  }
  }
  if ($all_pages > $pag){
  echo "<li><a aria-label='Next' href=\"" . $_SERVER['PHP_SELF'] . "?kategorie=".$kateg."&pag=" . ($pag + 1) . "\">";
  echo "<span aria-hidden='true'>&raquo;</span></a></li>";
  }
  }
come potete vedere.. ho provato ad utilizzare una funzione che manda alla pagina tramite get i dati (come vedere nell IF $pag>1 ma non funzionando sto rimettendo tutto com'era...

ah stavo tralasciando che questo pezzo di codice si visualizza nel div che viene mostrato dopo aver passato già dei dati ma in medoto POST
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
40
Ciao, la prima cosa da fare è creare un file pagination.php
PHP:
<?php

class Pagination{
var $baseURL = '';
var $totalRows = '';
var $perPage = 10;
var $numLinks = 2;
var $currentPage = 0;
var $firstLink = '&lsaquo; First';
var $nextLink = '&gt;';
var $prevLink = '&lt;';
var $lastLink = 'Last &rsaquo;';
var $fullTagOpen = '<div class="pagination">';
var $fullTagClose = '</div>';
var $firstTagOpen = '';
var $firstTagClose = '&nbsp;';
var $lastTagOpen = '&nbsp;';
var $lastTagClose = '';
var $curTagOpen = '&nbsp;<b>';
var $curTagClose = '</b>';
var $nextTagOpen = '&nbsp;';
var $nextTagClose = '&nbsp;';
var $prevTagOpen = '&nbsp;';
var $prevTagClose = '';
var $numTagOpen = '&nbsp;';
var $numTagClose = '';
var $anchorClass = '';
var $showCount = true;
var $currentOffset = 0;
var $contentDiv = '';
var $additionalParam= '';
function __construct($params = array()){
if (count($params) > 0){
$this->initialize($params);
}
if ($this->anchorClass != ''){
$this->anchorClass = 'class="'.$this->anchorClass.'" ';
}
}
function initialize($params = array()){
if (count($params) > 0){
foreach ($params as $key => $val){
if (isset($this->$key)){
$this->$key = $val;
}
}
}
}
// qui genero le pagine
function createLinks(){

if ($this->totalRows == 0 OR $this->perPage == 0){
return '';
}
// Calcolo il totale numero di  righe per pagina
$numPages = ceil($this->totalRows / $this->perPage);


if ($numPages == 1){
if ($this->showCount){
$info = 'Showing : ' . $this->totalRows;
return $info;
}else{
return '';
}
}
// Determino la pagina corrente
if ( ! is_numeric($this->currentPage)){
$this->currentPage = 0;
}

$output = '';

if ($this->showCount){
$currentOffset = $this->currentPage;
$info = 'Showing ' . ( $currentOffset + 1 ) . ' to ' ;
if( ( $currentOffset + $this->perPage ) < ( $this->totalRows -1 ) )
$info .= $currentOffset + $this->perPage;
else
$info .= $this->totalRows;
$info .= ' of ' . $this->totalRows . ' | ';
$output .= $info;
}
$this->numLinks = (int)$this->numLinks;

if ($this->currentPage > $this->totalRows){
$this->currentPage = ($numPages - 1) * $this->perPage;
}
$uriPageNum = $this->currentPage;
$this->currentPage = floor(($this->currentPage/$this->perPage) + 1);

$start = (($this->currentPage - $this->numLinks) > 0) ? $this->currentPage - ($this->numLinks - 1) : 1;
$end = (($this->currentPage + $this->numLinks) < $numPages) ? $this->currentPage + $this->numLinks : $numPages;

if ($this->currentPage > $this->numLinks){
$output .= $this->firstTagOpen
. $this->getAJAXlink( '' , $this->firstLink)
. $this->firstTagClose;
}

if ($this->currentPage != 1){
$i = $uriPageNum - $this->perPage;
if ($i == 0) $i = '';
$output .= $this->prevTagOpen
. $this->getAJAXlink( $i, $this->prevLink )
. $this->prevTagClose;
}

for ($loop = $start -1; $loop <= $end; $loop++){
$i = ($loop * $this->perPage) - $this->perPage;
if ($i >= 0){
if ($this->currentPage == $loop){
$output .= $this->curTagOpen.$loop.$this->curTagClose;
}else{
$n = ($i == 0) ? '' : $i;
$output .= $this->numTagOpen
. $this->getAJAXlink( $n, $loop )
. $this->numTagClose;
}
}
}

if ($this->currentPage < $numPages){
$output .= $this->nextTagOpen
. $this->getAJAXlink( $this->currentPage * $this->perPage , $this->nextLink )
. $this->nextTagClose;
}

if (($this->currentPage + $this->numLinks) < $numPages){
$i = (($numPages * $this->perPage) - $this->perPage);
$output .= $this->lastTagOpen . $this->getAJAXlink( $i, $this->lastLink ) . $this->lastTagClose;
}

$output = preg_replace("#([^:])//+#", "\\1/", $output);

$output = $this->fullTagOpen.$output.$this->fullTagClose;
return $output;
}
function getAJAXlink( $count, $text) {
if( $this->contentDiv == '')
return '<a href="'. $this->anchorClass . ' ' . $this->baseURL . $count . '">'. $text .'</a>';
$pageCount = $count?$count:0;
$this->additionalParam = "{'page' : $pageCount}";
return "<a href=\"javascript:void(0);\" " . $this->anchorClass . "
onclick=\"$.post('". $this->baseURL."', ". $this->additionalParam .", function(data){
$('#". $this->contentDiv . "').html(data); }); return false;\">"
. $text .'</a>';
}
}
?>

PHP:
 //Includo pagination.php nello script
 include('Pagination.php');
 

Marcello.Fiore

Nuovo Utente
14 Giu 2016
10
1
3
35
si si certo, questo lo ho già fatto... questo è il codice...
PHP:
<?php
require 'db.php'; //include una pagina di codice php

$s = $_GET["Suchen"];
$kateg = $_GET["kategorie"];
$regio = $_GET["Region"];

$x_pag = 8; // numero di record per pagina da visualizzare
?>
</br></br></br>
<div class="row">
  <div class="col-sm-12"><h5>Risultato ricerca: <b><?echo $s . " ";?></b></h5></div>
<?php
if    (($kateg == 0)&&($regio == 0) && ($s=="")){
  $pag = isset($_GET["pag"]) ? $_GET["pag"]:1;
  // Controllo se $pag è valorizzato e se è numerico
  // ...in caso contrario gli assegno valore 1
  if (!$pag || !is_numeric($pag)) $pag = 1;
  //CONTA RECORD TOTALI
  $sconta = ("SELECT COUNT(*) FROM Annunci");
  $n = mysqli_query($connection, $sconta) or die("Query conta non funzionante!");
  $all_rows = mysqli_fetch_array($n);
  // Tramite una semplice operazione matematica definisco il numero totale di pagine
  $all_pages = ceil($all_rows[0] / $x_pag);
  // Calcolo da quale record iniziare
  $first = ($pag - 1) * $x_pag;
  //ESEGUO LA QUERY
  $sql = ("SELECT * FROM Annunci ORDER BY cod DESC LIMIT " .$first.", ".$x_pag);
  $annn = mysqli_query($connection, $sql) or die("Query non funzionante");
  //MOSTRO LA QUERY
  $n = 0;
  while ($annuncio = mysqli_fetch_array($annn))
  {
  $n = $n + 1;
  if (($n == 1)||($n == 5)){
  echo "<div class='row'>";
  }
  $img = "img/min_".$annuncio["foto_home"];
  if (file_exists($img) == FALSE){
  $img = "no-image.jpg";
  }
  else{
  $img = $annuncio["foto_home"];
  }
  //SELEZIONO LE FOTO IN BASE ALL'ARTICOLO
  $sql2 = "SELECT COUNT(*) FROM Immagini WHERE cod_annuncio=".$annuncio["cod"];
  $fot = mysqli_query($connection, $sql2);
  $n_foto = mysqli_fetch_array($fot);
  //SELEZIONO LA REGIONE
  $sql3 = "SELECT nome_regione FROM Regioni WHERE od_regione=".$annuncio["cod_regio"];
  $rr = mysqli_query($connection, $sql3);
  $regione = mysqli_fetch_array($rr);

  echo (" <div class='col-sm-3 col-md-3'>
  <div class='thumbnail'>
  <img class='img-responsive' src='img/min_".$img."' title='".$annuncio["titolo"]."'>
  <div id='n-foto'>".($n_foto[0]+1)."</div>
  <div class='caption'>
  <h4><a href='Aussehen.php?ID=".$annuncio["cod"]."'>".$annuncio["titolo"]."</a></h4>
  <p id='over-x'>".substr($annuncio["descri"],0,284)."...</p>
  <p id='over-x'>".$regione["nome_regione"]." - ".$annuncio["nome"]."</p>
  <p><a href='#' class='btn btn-primary' role='button'>Mehr Info</a></p>
  </div>
  </div>
  </div>");
  if (($n == 4)||($n == 8)) {
  echo "</div>";
  }
  }
  //STAMPO LA PAGINAZIONE
  echo ("<div class='col-sm-12'>
  <nav>
  <ul class='pagination'>");
  // Se le pagine totali sono più di 1...
  // stampo i link per andare avanti e indietro tra le diverse pagine!
  if ($all_pages > 1){
  if ($pag > 1){
  echo "<li><a aria-label='Previous' href='s.php?Suchen=".$s."&kategorie=".$kateg."&Region=".$regio."&pag=" . ($pag - 1)."'><span aria-hidden='true'>&laquo;</span></a></li>";
  }
  // faccio un ciclo di tutte le pagine
  for ($p=1; $p<=$all_pages; $p++) {
  // per la pagina corrente non mostro nessun link ma la evidenzio in blod
  // all'interno della sequenza delle pagine
  if ($p == $pag) {
  echo "<li class='active'><a href=''>".$p."</a></li>";
  }
  // per tutte le altre pagine stampo il link
  else {
  echo "<li><a href=\"s.php?Suchen=".$s."&kategorie=".$kateg."&Region=".$regio."&pag=" . $p . "\">";
  echo $p . "</a></li>";
  }
  }
  if ($all_pages > $pag){
  echo "<li><a aria-label='Next' href=\"s.php?Suchen=".$s."&kategorie=".$kateg."&Region=".$regio."&pag=" . ($pag + 1) . "\">";
  echo "<span aria-hidden='true'>&raquo;</span></a></li>";
  }
  }
  echo("</ul>
  </nav>
  </div>");
  //FINE PAGINAZIONE
}
?>
</div>

solo che quando clicco su un altra pagina non mi viene aperta nella stessa pagina... ed io vorrei rimanere sulla stessa pagina... avete qualche idea?
 
Discussioni simili
Autore Titolo Forum Risposte Data
J Paginazione PHP in jQuery UI Tabs jQuery 13
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
motleyrulez Paginazione Tabella Bootstrap Javascript 2
B [Java] Paginazione in risposta HTTP Java 0
L [PHP] paginazione con classi vendor PHP 2
K [PHP] Paginazione Wordpress: passare variabile PHP 6
A [PHP] If e Else paginazione ok ci sono risultati no ma avanti lo stesso PHP 15
paloppa [PHP] paginazione con ajax PHP 1
O paginazione php mysql PHP 10
A [PHP] limitare counter paginazione PHP 7
V [ASP] paginazione-risultati-query-grandi-dimensioni Classic ASP 8
A [PHP] Problema paginazione motore di ricerca PHP 48
A [PHP] inserire paginazione su script php/mysql PHP 6
elpirata [PHP] Paginazione dati estratti da una query con più condizioni PHP 17
X come modificare paginazione del tutorial PHP 0
MarcoGrazia Problema con bootstrap, saltata tutta la paginazione in IE8 HTML e CSS 1
F paginazione record di una query Classic ASP 5
Luca13 ASP Easy-News paginazione Classic ASP 2
G Problema di Indice e Paginazione PHP 5
L articolo: Paginazione dei dati presenti in un file di testo - informazioni PHP 2
M Paginazione di risultati query mysql PHP 2
D Paginazione dati PDO PHP 8
zorro Help paginazione PHP 10
M Problema su numerazione paginazione php PHP 6
D [risolto] Problemi di paginazione dei risultati con una determinata query Classic ASP 4
L paginazione testo senza troncare le parole PHP 3
L testare una paginazione "Creazione di 1000 dati random in una tabella" PHP 7
L problema paginazione con valori -1 -2 -3 -4 PHP 0
N Paginazione con invio modulo PHP 0
L Paginazione file di testo PHP 3
N Script paginazione PHP 0
N Paginazione PHP 2
felino Pagina di ricerca: la paginazione non funziona WordPress 0
xone Evitare Meta Tag duplicati su paginazione php PHP 2
filippino Paginazione file txt con PHP? PHP 1
felino PHP e Paginazione Jquey PHP 2
H [RISOLTO] paginazione PHP + mysql PHP 15
M Problema Paginazione con Mod_rewrite .htaccess PHP 0
ste80 interazione PHP Access con paginazione PHP 7
W Problema eliminazione ultimo record da ultima pagina di crud con paginazione PHP 2
L Paginazione con pdo. PHP 8
G Paginazione php utilizzando le api di careerjet PHP 0
G Paginazione php utilizzando le api di careerjet WordPress 1
S paginazione PHP 2
L Paginazione file evitare di inserire questi \ o altro nella get PHP 1
K problemi con paginazione tabella PHP 7
L Creare paginazione numerica PHP 3
L Problema paginazione che ripete i dati doppi PHP 1
L Paginazione elenco File da una cartella PHP 11
L probelma paginazione dati PHP 3

Discussioni simili