У меня есть форма фильтра в моем html, который отправляет данные в php через ajax для монтирования запроса. Я хочу разбивать на страницы результаты по моему запросу. что это лучший способ сделать это?Результат запроса paginate с PHP и AJAX
вы можете проверить site here (нажмите фильтр)
Аякса:
jQuery(document).ready(function(){
jQuery('#filtros').submit(function(){
var dados = jQuery(this).serialize();//build a post data structure
jQuery.ajax({
type: "POST",
url: "organiza_tab.php",
dataType:"text"
data: dados,//Form variables
success: function(response)
{
$("#output").html(response);
}
});
return false;
});});
это мой PHP-файл, где я захватить данные формы и смонтировать запрос
$deano = $_POST['deyear'];
$deano = $_POST['deyear'];
$demes = $_POST['demonth'];
$dedia = $_POST['deday'];
$ateano = $_POST['ateyear'];
$atemes = $_POST['atemonth'];
$atedia = $_POST['ateday'];
$asc = $_POST['direcao'];
$orderby = $_POST['ordenado'];
$dedata = $deano ."-". $demes ."-". $dedia;
$atedata = $ateano ."-". $atemes ."-". $atedia;
if($_POST['loja']){
for ($i=0; $i<sizeof($_POST['loja']); $i++){
$where_loja[$i] = " `loja` = '{$_POST['loja'][$i]}'";
}
}
if(sizeof($where_loja)){
$query[] = "(".implode(' OR ',$where_loja).")";
}
$sql = "SELECT *
FROM vendas WHERE";
if(sizeof($query)>1){
$sql .= $query[0];
for($i=1; $i<sizeof($query);$i++){
$sql.= ' AND '. $query[$i];
}
}else{
$sql.= $query[0];
}
if($_POST['loja']){
$sql.=" AND ";
}
$sql .= " (data > '$dedata' AND data < '$atedata' )";
$sql .= " ORDER BY " . $orderby ." ". $asc ;
Это разбиение на страницы. проблема в том, что когда я меняю страницу, URL-адрес тоже изменяется, и форма не отправляется. Мне нужно отправить форму для выполнения запроса. Как я могу это сделать? что является лучшим способом для разбиения на страницы моего результата запроса, учитывая, что мне нужно отправить форму.
//items per page
$quantidade = 30;
//current page
$pagina = (isset($_POST['pagina'])) ? (int)$_POST['pagina'] : 1;
//Calcula a pagina de qual valor ser? exibido
$inicio = ($quantidade * $pagina) - $quantidade;
$sql .= " LIMIT " . $inicio . " , " . $quantidade ;
$qr = mysql_query($sql) or die(mysql_error());
echo "<table id='tab_vendas' border='1' width='100%'>";
echo "<tr><td>Data</td><td>Loja</td><td>Total (AKZ)</td><td>Total (USD)</td> <td>Multicaixa</td><td>Saidas</td><td>Visa</td></tr>";
$num_rows = mysql_num_rows($qr);
if($num_rows > 0){
while($ln = mysql_fetch_assoc($qr)){
echo "<tr><td>" . $ln['data']."</td>";
echo "<td>" . $ln['loja']."</td>";
echo "<td>" . $ln['totalkz']."</td>";
echo "<td>" . $ln['totaldollar']."</td>";
echo "<td>" . $ln['multicaixa']."</td>";
echo "<td>" . $ln['saidas']."</td>";
echo "<td>" . $ln['visa']."</td></tr>";
}
}else{
echo "sorry no data";
}
echo"</table></div>";
//SQL para saber o total
$sqlTotal = "SELECT id FROM vendas";
//Executa o SQL
$qrTotal = mysql_query($sqlTotal) or die(mysql_error());
//Total de Registro na tabela
$numTotal = mysql_num_rows($qrTotal);
//O calculo do Total de p?gina ser exibido
$totalPagina= ceil($numTotal/$quantidade);
$exibir = 3;
$anterior = (($pagina - 1) == 0) ? 1 : $pagina - 1;
$posterior = (($pagina+1) >= $totalPagina) ? $totalPagina : $pagina+1;
echo "<div id='paginacao'><a href='?pagina=1'>Primeira</a> | ";
echo "<a href=\"?pagina=$anterior\"><<</a> | ";
for($i = $pagina-$exibir; $i <= $pagina-1; $i++){
if($i > 0)
echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
}
echo '<a href="?pagina='.$pagina.'"><strong>['.$pagina.']</strong></a>';
for($i = $pagina+1; $i < $pagina+$exibir; $i++){
if($i <= $totalPagina)
echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
}
echo " | <a href=\"?pagina=$posterior\">>></a> | ";
echo " <a href=\"?pagina=$totalPagina\">Ultima</a></div>";
Спасибо за ваш ответ Что такое HTML erros? где я должен изменить код, определяющий переменные формы? –