Buongiorno a tutti.
Ho un problema con la paginazione su php, utilizzando ajax.
Ho trovato in rete una demo di paginazione, e ho deciso di modificarla a pennello per il mio sito.
Attualmente sto lavorando in locale , con un database anch'esso in locale.
Nel database (che si chiama 'lavoro') ho una tabella di nome messaggio con all'interno questi campi:
Nome
Cognome
Invio_richiesta
Data_arrivo
Data_partenza
Email
Messaggio.
Si tratta di una tabella che viene aggiornata tramite un form.
Mi spiego meglio:
Sto creando una sorta di sito BOOKING dove i clienti inseriscono in un form il loro nome, cognome, data di arrivo, data partenza ecc. e questi dati poi vengono inseriti nella tabella messaggio.
Dopo che gli utenti hanno effettuato le varie prenotazioni, vorrei vedere tutte le prenotazioni , con paginazione.
Nello specifico sto utilizzando WP all'interno di una sezione personale del menu di WP. Cliccando su questa sezione , si entra in una pagina dove l'admin , sceglierà le richieste entro una nota data (li dentro infatti si trovano due form: una data di arrivo e una data di partenza).
Cliccando il tasto invia , vorrei stampare a video i risultati.
Il mio codice va alla perfezione senza la paginazione. Con la paginazione non riesco a fargli stampare i risultati.
Ho utilizzato 3 file
FILE config-inc.php dove mi collego al mio database e inserisco anche il numero di risultati per pagina
FILE index.php dove troviamo il form e dopo che si clicca su invia vorrei far spuntare i risultati
FILE fetch_pages.php dove trovo la query e quant'altro
Non riesco a capire dove sbaglio. Se qualcuno può aiutarmi , ne sarei grato
Ho un problema con la paginazione su php, utilizzando ajax.
Ho trovato in rete una demo di paginazione, e ho deciso di modificarla a pennello per il mio sito.
Attualmente sto lavorando in locale , con un database anch'esso in locale.
Nel database (che si chiama 'lavoro') ho una tabella di nome messaggio con all'interno questi campi:
Nome
Cognome
Invio_richiesta
Data_arrivo
Data_partenza
Messaggio.
Si tratta di una tabella che viene aggiornata tramite un form.
Mi spiego meglio:
Sto creando una sorta di sito BOOKING dove i clienti inseriscono in un form il loro nome, cognome, data di arrivo, data partenza ecc. e questi dati poi vengono inseriti nella tabella messaggio.
Dopo che gli utenti hanno effettuato le varie prenotazioni, vorrei vedere tutte le prenotazioni , con paginazione.
Nello specifico sto utilizzando WP all'interno di una sezione personale del menu di WP. Cliccando su questa sezione , si entra in una pagina dove l'admin , sceglierà le richieste entro una nota data (li dentro infatti si trovano due form: una data di arrivo e una data di partenza).
Cliccando il tasto invia , vorrei stampare a video i risultati.
Il mio codice va alla perfezione senza la paginazione. Con la paginazione non riesco a fargli stampare i risultati.
Ho utilizzato 3 file
FILE config-inc.php dove mi collego al mio database e inserisco anche il numero di risultati per pagina
PHP:
<?php
$db_username = 'root';
$db_password = '';
$db_name = 'lavoro';
$db_host = 'localhost';
$item_per_page = 5;
$connecDB = mysqli_connect($db_host, $db_username, $db_password,$db_name)or die('could not connect to database');
?>
FILE index.php dove troviamo il form e dopo che si clicca su invia vorrei far spuntare i risultati
PHP:
include("config.inc.php");
$results = mysqli_query($connecDB,"SELECT COUNT(*) FROM messaggio");
$get_total_rows = mysqli_fetch_array($results); //total records
//break total records into pages
$pages = ceil($get_total_rows[0]/$item_per_page);
?><!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax Pagination</title>
<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="js/jquery.bootpag.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#results").load("fetch_pages.php"); //initial page number to load
$(".pagination").bootpag({
total: <?php echo $pages; ?>,
page: 1,
maxVisible: 5
}).on("page", function(e, num){
e.preventDefault();
$("#results").prepend('<div class="loading-indication"><img src="ajax-loader.gif" /> Loading...</div>');
$("#results").load("fetch_pages.php", {'page':num});
});
});
</script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div>
<h1>Benvenuto nel plugin delle richieste</h1>
<form action="" method="post">
<fieldset>
<div><legend>
Selezionare il periodo di richieste che si vogliono visualizzare</legend>
<div>Giorno Arrivo</div><div> <input type="text" id="arrivo" name="arrivo" required /></div>
<div>Giorno Partenza</div><div><input type="text" id="partenza" name="partenza" required/></div>
<p><input type="submit" name="invia" value="Invia"/></p>
<?php if($_POST['invia']){ ?><div>Numeri risultati per pagina:<select name="paginazione">
<option value="5">5</option>
<option value="15">15</option>
<option value="30">30</option>
</select></div><?php }?>
</div>
</fieldset>
</form>
</div>
<br/>
<br/>
<?php
$arrivo=$_POST['arrivo'];
$partenza=$_POST['partenza'];
//trasformo il formasto della data da giorno mese e anno ad anno mese e giorno
$data_arrivo_trattino=str_replace("/", "-", $arrivo);
$vet=explode("-", $data_arrivo_trattino);
$data_finale_arrivo=$vet[2]."-".$vet[1]."-".$vet[0];
$data_partenza_trattino=str_replace("/", "-", $partenza);
$vet=explode("-", $data_partenza_trattino);
$data_finale_partenza=$vet[2]."-".$vet[1]."-".$vet[0];
if($_POST['invia']){
?>
<div id="results"></div>
<div class="pagination"></div>
</body>
<?php
}
?>
</html>
FILE fetch_pages.php dove trovo la query e quant'altro
PHP:
<?php
include("config.inc.php"); //include config file
$arrivo=$_POST['arrivo'];
$partenza=$_POST['partenza'];
//trasformo il formasto della data da giorno mese e anno ad anno mese e giorno
$data_arrivo_trattino=str_replace("/", "-", $arrivo);
$vet=explode("-", $data_arrivo_trattino);
$data_finale_arrivo=$vet[2]."-".$vet[1]."-".$vet[0];
$data_partenza_trattino=str_replace("/", "-", $partenza);
$vet=explode("-", $data_partenza_trattino);
$data_finale_partenza=$vet[2]."-".$vet[1]."-".$vet[0];
//sanitize post value
if(isset($_POST["page"])){
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);
if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number
}else{
$page_number = 1;
}
//get current starting point of records
$position = (($page_number-1) * $item_per_page);
//Limit our results within a specified range.
$results = mysqli_query($connecDB, "SELECT * from messaggio where data_arrivo >='".$data_finale_arrivo."'and data_partenza <='".$data_finale_partenza."' ORDER BY invio_richiesta desc LIMIT $position, $item_per_page");
//output results from database
echo '<ul class="page_result">';
while($row = mysqli_fetch_array($results))
{
echo '<li id="item_'.$row["cognome"].'">'.$row["messaggio"].'. <span class="page_name">'.$row["invio_richiesta"].'</span><span class="page_message">'.$row["email"].'</span></li>';
}
echo '</ul>';
?>
Non riesco a capire dove sbaglio. Se qualcuno può aiutarmi , ne sarei grato