Подскажите дурачку)

12 3
LG
На сайте с 17.01.2014
Offline
42
1563

Добрый вечер. Сижу что то психую.

Особо не рулиз, но желание добить уже не отступное.

Суть: Вывожу из БД инфу в div, будет свое рода список аптек, вывел, но вот теперь хочу чтобы было что то типа постраничного просмотра этого дива, делал пагинацию, перегружает при переходе на следующую страницу diva, всю страницу сайта, не хорошо. Вот теперь думаю может стилями как. Но мне надо чтобы было еще и адаптивно. Помогите, подскажите))

Вот желаемое:

вот код:

<?php

$dblocation = "localhost"; // Имя сервера
$dbuser = ""; // Имя пользователя
$dbpswrd = ""; // Пароль
$dbname = ""; // Имя базы данных

DEFINE('ITEMS_PER_PAGE', 9);

// Соединение с сервером базы данных
$dblink = mysql_connect( $dblocation, $dbuser, $dbpswrd );
mysql_query( 'SET NAMES utf8' );
// Выбираем базу данных
mysql_select_db( $dbname, $dblink );

// Выбираем из БД общее количество записей
$query = "SELECT COUNT(*) FROM pmd_news WHERE 1";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );

// Проверяем передан ли номер текущей страницы (постраничная навигация)
if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = 1;
}

$uri = $_SERVER['PHP_SELF'].'?';
if ( $_SERVER['QUERY_STRING'] != '' ) {
foreach( $_GET as $key => $value ) {
if ( $key != 'page' ) $uri = $uri.$key.'='.urlencode($value).'&';
}
}
// Сколько всего получится страниц
$cnt_pages = ceil( $total / ITEMS_PER_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
// Начальная позиция
$start = ( $page - 1 ) * ITEMS_PER_PAGE;

// По умолчанию сортировка по наименованию, по возрастанию
$orderby = 'name';


$query = 'SELECT name, telefon, address, class, selector
FROM pmd_news
ORDER BY '.$orderby.'';
$res = mysql_query( $query );

echo '<h1>Каталог продукции</h1>'."\n";

while( $prd = mysql_fetch_array($res) ) {


echo '<div class="grid_4">';
echo '<div class="flavor '.$prd['class'].'">';
echo '<div class="grid_3">';
echo '<div class="img_icon"></div>';
echo '<div class="strong">'.$prd['name'].'</div>';
echo '<span>'.$prd['address'].'<br>'.$prd['telefon'].'</span>';
echo '</div>'."\n";
echo '</div>'."\n";
echo '</div>'."\n";
}


?>
dmitcat
На сайте с 26.05.2005
Offline
123
#1

менять содержимое div при нажатии на страницы ajax запросом...

Либо селяВи (http://www.puper.ru), либо селяВас (http://www.puper.ru)!!!
LG
На сайте с 17.01.2014
Offline
42
#2
dmitcat:
менять содержимое div при нажатии на страницы ajax запросом...

Я почему то был уверен, что первый ответ будет такой) Я же написал что у меня не получилось.

LG
На сайте с 17.01.2014
Offline
42
#3

Хорошо. У меня есть файл catalog.php в котором находится весь этот код (выше). Его я includ(ом) вставляю в файл body.php. Подскажите как сформировать функцию ajax запроса, чтобы внутри divа (где расположен <? include("./blocks/catalog.php");?> ) при переходе по его страницам не происходила перезагрузка всей страницы. Спасибо Вам всем большое, кто поделиться своими знаниями. С праздниками вас)

дани мапов
На сайте с 06.09.2012
Offline
204
#4

Можно попробовать использовать плагин https://github.com/gbirke/jquery_pagination#readme

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
LG
На сайте с 17.01.2014
Offline
42
#5

я уже два дня с этими плагинами мучаюсь тут)) может уже действительно проще перезагрузку страницы убрать через аякс запрос при переходе на страницы в divе. Подскажите как.

LG
На сайте с 17.01.2014
Offline
42
#6

Ну что знатоки) никто не подскажет?

LG
На сайте с 17.01.2014
Offline
42
#7
stanislav1980:
это обьемный вопрос и наврят ли кто будет бесплатно вам целый скрипт делать. посмотрите в профильных платных разделах - найдите исполнителя

Вы меня в заблуждение вводите, сделать джава запрос, чтобы страница не перегружалась - это целый скрипт написать? Если это так, тогда жаль, я думал суть форумов как раз в том чтобы делиться знаниями, находить ответы на вопросы... а да я забыл мы не при СССР уже тогда сори.

Z0
На сайте с 03.09.2009
Offline
759
#8


class navigator
{
function navigator($all,$pnumber,$query)
{
$this->all=$all;
$this->pnumber=$pnumber;
$this->query=$query;
if(isset($_GET['page']))
{
$this->page = (int)$_GET['page'];
}
else
{
$this->page = 1;
}
}
function start()
{
$this->num_pages=ceil($this->all/$this->pnumber);

if (isset($_GET['last']))
{
$this->page=$this->num_pages;
}
$this->start=$this->page*$this->pnumber-$this->pnumber;
if ($this->page > $this->num_pages || $this->page < 1)
{
$this->page=$this->num_pages;
}
return abs($this->start);
}
function navi()
{
if ($this->page < $this->num_pages)
{
$next = " <a href='".$_SERVER['SCRIPT_NAME']."?page=".($this->page+1).$this->query."'>&gt;&gt;</a>";
}
else
{
$next ="";
}
if ($this->page > 1)
{
$prev = "<a href='".$_SERVER['SCRIPT_NAME']."?page=".($this->page-1).$this->query."'>&lt;&lt;</a> ";
}
else
{
$prev ="";
}
if ($this->num_pages<2)
{
return "";
}
$main = $prev;
for($pr = "", $i =1; $i <= $this->num_pages; $i++)
{
if($i == 1 || $i == $this->num_pages || abs($i-$this->page) < 8)
{
if($i == $this->page)
{
$pr = " [".$i."] ";
}
else
{
$pr = " <a href='".$_SERVER['SCRIPT_NAME']."?page=".$i.$this->query."'>".$i."</a> ";
}
}
else
{
if($pr == " ... " || $pr == "")
{
$pr = "";
}
else
{
$pr = " ... ";
}
}
$main .= $pr;
}
return "<h3>".$startdiv.$main.$next.$enddiv."</h3>";
}
}


$q=mysql_query("SELECT count(*) FROM page");
$all=mysql_result($q,0,0);
if ($all)
{
$pnumber=40;
$n = new Navigator($all, $pnumber, "");
$q=mysql_query("SELECT * FROM page LIMIT ".$n->start().",$pnumber");
echo $n->navi(); /* листинг */
while (false!==($row=mysql_fetch_array($q)))
{
echo "<a href=''>".$row['name']."</a>";
}
echo $n->navi(); /* листинг */
}
LG
На сайте с 17.01.2014
Offline
42
#9

Спасибо большое за участие, кину наверное полный код свой

<?php

DEFINE('ITEMS_PER_PAGE', 12);

// Выбираем из БД общее количество записей
$query = "SELECT COUNT(*) FROM pmd_catalog WHERE 1";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );

// Проверяем передан ли номер текущей страницы (постраничная навигация)
if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = 1;
}

$uri = $_SERVER['PHP_SELF'].'?';
if ( $_SERVER['QUERY_STRING'] != '' ) {
foreach( $_GET as $key => $value ) {
if ( $key != 'page' ) $uri = $uri.$key.'='.urlencode($value).'&';
}
}
// Сколько всего получится страниц
$cnt_pages = ceil( $total / ITEMS_PER_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
// Начальная позиция
$start = ( $page - 1 ) * ITEMS_PER_PAGE;

// По умолчанию сортировка по наименованию, по возрастанию
$orderby = 'selector';


$query = 'SELECT name, telefon, address, class, selector
FROM pmd_catalog
ORDER BY '.$orderby.' ASC
LIMIT '.$start.' ,'.ITEMS_PER_PAGE;
$res = mysql_query( $query );

echo '<h1>Каталог продукции</h1>'."\n";

while( $prd = mysql_fetch_array($res) ) {


echo '<div class="grid_4">';
echo '<div class="flavor '.$prd['class'].'">';
echo '<div class="grid_3">';
echo '<div class="img_icon"></div>';
echo '<div class="strong">'.$prd['name'].'</div>';
echo '<span>'.$prd['address'].'<br>'.$prd['telefon'].'</span>';
echo '</div>'."\n";
echo '</div>'."\n";
echo '</div>'."\n";
}
// Строим постраничную навигацию
if ( $cnt_pages > 1 )
{
echo '<div style="margin:1em 0">&nbsp;Страницы: ';
// Проверяем нужна ли стрелка "В начало"
if ( $page > 3 )
$startpage = '<a href="'.$_SERVER['PHP_SELF'].'?page=1"><<</a> ... ';
else
$startpage = '';
// Проверяем нужна ли стрелка "В конец"
if ( $page < ($cnt_pages - 2) )
$endpage = ' ... <a href="'.$_SERVER['PHP_SELF'].'?page='.$cnt_pages.'">>></a>';
else
$endpage = '';

// Находим две ближайшие станицы с обоих краев, если они есть
if ( $page - 2 > 0 )
$page2left = ' <a href="'.$_SERVER['PHP_SELF'].'?page='.($page - 2).'">'.($page - 2).'</a> | ';
else
$page2left = '';
if ( $page - 1 > 0 )
$page1left = ' <a href="'.$_SERVER['PHP_SELF'].'?page='.($page - 1).'">'.($page - 1).'</a> | ';
else
$page1left = '';
if ( $page + 2 <= $cnt_pages )
$page2right = ' | <a href="'.$_SERVER['PHP_SELF'].'?page='.($page + 2).'">'.($page + 2).'</a>';
else
$page2right = '';
if ( $page + 1 <= $cnt_pages )
$page1right = ' | <a href="'.$_SERVER['PHP_SELF'].'?page='.($page + 1).'">'.($page + 1).'</a>';
else
$page1right = '';

// Выводим меню
echo $startpage.$page2left.$page1left.'<strong>'.$page.'</strong>'.$page1right.$page2right.$endpage;

echo '</div>';
}

?>


---------- Добавлено 02.05.2017 в 16:40 ----------

Спасибо большое за участие, посмотрите весь мой код, у меня там уже есть постраничка, не могу только решить вопрос с перезагрузкой страницы
Z0
На сайте с 03.09.2009
Offline
759
#10

Через jquery можно:


<div class='container'></div>
<div class='page' data-id='1'>1 страница</div>
<div class='page' data-id='2'>1 страница</div>
<div class='page' data-id='n'>n страница</div>
<script>
$('.page').click(function(){
$.ajax({
url: '/ajax.php',
type: 'POST',
data: {'page_id': $(this).attr('data-id')},
success: function(html){
$('.container').html(html);
}
});
});
</script>
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий