Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> постраничный вывод 
:(
    Опции темы
Shark
Дата 15.9.2011, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: нет
Всего: 4



нашел у себя код, когда-то использовал его у себя на форуме...

Код

<?php
$pervpage=''; 
$page2left='';  
$page1left=''; 
$page='';  
$page1right='';  
$page2right=''; 
$nextpage='';
$num = 5;
$page = array_key_exists('pages', $_POST) ?  $_POST[ 'pages' ] : 0; 

$count_news=mysql_query("SELECT COUNT(*) FROM wot_news") or die ("Ошибка: невозможно прочитать новости");
$p  =  mysql_result ( $count_news,0 ); 
$total  =  intval (( $p  -  1 ) /  $num ) +  1; 
$page  =  intval ( $page ); 
// Если значение $page меньше единицы или отрицательно переходим на первую страницу. А если слишком большое, то переходим на последнюю 
if(empty( $page ))  $page  =  1 ; 
if( $page  >  $total )  $page  =  $total ; 
// Вычисляем начиная к какого номера следует выводить сообщения 
$start  =  $page  *  $num  -  $num ; 



// Выбираем $num сообщений начиная с номера $start
echo "<table border=\"0\" width=\"90%\" align=center style=\"border-collapse:collapse;table-layout:fixed;\"><tr><td>
                <div align=left><font size=2>Страница: ";
// Проверяем нужны ли стрелки назад 
if ( $page  !=  1 ) $pervpage  =  "<a href=".$_SERVER['PHP_SELF']."?pages="."1"."> <<</a> 
    <a href=".$_SERVER['PHP_SELF']."?page=" . ( $page  -  1 ). "><</a> " ; 
            
// Проверяем нужны ли стрелки вперед 
if ( $page  !=  $total ) $nextpage  =   "<a href=".$_SERVER['PHP_SELF']."?pages=" . ( $page  +  1 ). "> ></a> 
    <a href=".$_SERVER['PHP_SELF']."?page="  . $total .  ">>></a>" ; 
            
// Находим две ближайшие станицы с обоих краев, если они есть 
if( $page  -  2  >  0 )  $page2left  =  " <a href=".$_SERVER['PHP_SELF']."?pages=" . ( $page  -  2 ). ">" . ( $page  - 2 ). "</a> | " ; 
if( $page  -  1  >  0 )  $page1left  =  " <a href=".$_SERVER['PHP_SELF']."?pages=" . ( $page  -  1 ). ">" . ( $page  - 1 ). "</a> | " ; 
if( $page  +  2  <=  $total )  $page2right  =  " | <a href=".$_SERVER['PHP_SELF']."?pages=" . ( $page  +  2 ). ">" . ( $page  +  2 ). "</a>" ; 
if( $page  +  1  <=  $total )  $page1right  =  " | <a href=".$_SERVER['PHP_SELF']."?pages=" . ( $page  +  1 ). ">" . ( $page  +  1 ). "</a>" ; 
// Вывод меню 
echo  $pervpage . $page2left . $page1left . "<b>" . $page . "</b>" . $page1right . $page2right . $nextpage ; 
echo "</div></font></td></tr></table>";


$news=mysql_query("SELECT `id`, `title`, `message`, `time`, `source` FROM wot_news ORDER BY id DESC LIMIT $start, $num") or die ("Ошибка: невозможно прочитать новости");
while($new=mysql_fetch_array($news))
    {


что нужно написать на ajax чтоб выполнялся постраничный вывод без перезагрузки страницы?

помогите, пожалуйста


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
InfMag
Дата 16.9.2011, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Shark, то-бишь всё сделать за вас? Напишите для начала в пример пару url-ов, и то, что они целиком возвращают.
PM   Вверх
Shark
Дата 17.9.2011, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: нет
Всего: 4



InfMag, перед написанием поста.. пробовал в урле написать ID и через аякс пропустить запрос используя load()


что-то типойтакой конструкции... но она естественно не сработала
Код

$(document).read
(
   function()
      {
          $('#view_news').hide();
          function()
            {
                 $('#view_news).load(news.php, 'page' : '".( $page  +  1 )."');
           }
      }
);



--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
InfMag
Дата 17.9.2011, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Shark, она и не должна сработать, потому что вы тут кавычку не закрыли:
Код

$('#view_news)


Добавлено через 1 минуту и 14 секунд
Да и вообще, где вы $page взяли переменную, что делает $(document).read(? Может быть ready?

Добавлено через 7 минут и 29 секунд
Блин, тут вообще не понятно что делает код. Никакой логики и целая туча ошибок. Вот к примеру может это то, что нужно?:
Код

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(function () {
        $('#container').load('page.html');
    });
    </script>
</head>
<body>
<h1>Test...</h1>
<div id="container"></div>
</body>
</html>

PM   Вверх
InfMag
Дата 17.9.2011, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Shark, по поводу самого ajax, того, что нужно:
  • Чтобы AJAX имел под собой смысл, нужно отдавать в вашем php-скрипте только ту часть html-кода, которую нужно заменить. Без шаблона, каркаса, можно хоть просто текст;
  • После чего можно использовать хоть метод load, что был описан;
  • Чтобы была разница между просто страницей с шаблоном и прочим, можно использовать проверочную GET-переменную ?ajax=Y к примеру, при котором не будет выводиться весь код страницы с шаблоном, а только контент.
Надеюсь доходчиво.

А ссылки после каждого load надо переназначать, чтобы они выполняли ajax. К примеру:
Код

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(function () {
        var linkCallback = function () {
            $('#container').load('page.html', function () {
                $(this).find('a').click(linkCallback);
            });
            
            return false;
        };
        
        $('a').click(linkCallback);
    });
    </script>
</head>
<body>
<h1>Test...</h1>
<a href="#">link</a>
<div id="container">test content</div>
</body>
</html>

PM   Вверх
Shark
Дата 17.9.2011, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: нет
Всего: 4



если честно, по поводу кода ничего не понял...

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

скажу в кратце.. у меня выводятся только названия новостей, но при нажатии на новость, появляется сама новость (аякс).. а вот сделать постраничный вывод, с линками(в первом посте) пока никак в голову ничего нормально не лезет :(


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Shark
Дата 19.9.2011, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: нет
Всего: 4



нашел другой скрипт, но и с ним проблема...

news.php
Код

<?php
include('config.php');

$per_page = 1; 

if($_GET)
{
$page=$_GET['page'];
}



//get table contents
$start = ($page-1)*$per_page;
$sql = "select * from wot_news order by id limit $start,$per_page";
$rsd = mysql_query($sql);
?>

        
        <?php
while($new=mysql_fetch_array($rsd))
    {
        $new['message']=str_replace("[i]","<I>",$new['message']);
        $new['message'] =str_replace("[I]","<I>",$new['message']);
        $new['message'] =str_replace("[/i]","</I>",$new['message']);
        $new['message']=str_replace("[/I]","</I>",$new['message']);    
        $new['message']=str_replace("[u]","<U>",$new['message']);
        $new['message'] =str_replace("[U]","<U>",$new['message']);
        $new['message'] =str_replace("[/u]","</U>",$new['message']);
        $new['message']=str_replace("[/U]","</U>",$new['message']);
        $new['message'] =str_replace("","<B>",$new['message']);
        $new['message'] =str_replace("[B]","<B>",$new['message']);
        $new['message'] =str_replace("
","</B>",$new['message']);
        $new['message']=str_replace("[/B]","</B>",$new['message']);
        $new['message']=preg_replace( '/\[align=(.*)\]/isU', '<div align=\'\\1\'>', $new['message']);
        $new['message']=str_replace("[/align]","</div>",$new['message']);
        $new['message']=preg_replace('/\[url=(.+)\](.+)\[\/url\]/iU', '<a href="http://\1" target="_blank">\2</a>', $new['message']);
        $new['source']=preg_replace('/\[url=(.+)\](.+)\[\/url\]/iU', '<a href="//\1" target="_blank">\2</a>', $new['source']);
        $new['message']=preg_replace('/\[img\](http:\/\/[a-zA-Z_0-9\-\.\/]*\.(jpg|gif|png))\[\/img\]/is', '<img src="$1">', $new['message']);
        $new['message']=preg_replace( '/\[size=(.*)\]/isU', '<font size=\'\\1\'>', $new['message'] );
        $new['message']=str_replace("[/size]","</font>",$new['message']);
        $new['message']=preg_replace( '/\[color=(.*)\]/isU', '<font color=\'\\1\'>', $new['message']);
        $new['message']=str_replace("[/color]","</font>",$new['message']);
        $view_news=str_replace('<br />', '<p>', $new['message']);
    
        echo "<div id='name_news'><href id=".$new['id']."><font size=2>".date('d.m.Y', $new['time'])."</font><br /><a href=#".$new['id']." id='view_new-".$new['id']."'>".$new['title']."</a></href><br />
        <script type=\"text/javascript\">
        $(document).ready
            (
                function()
                    {
                        $('#view_news-".$new['id']."').hide();
                        $('#view_new-".$new['id']."').click
                            (
                                function()
                                    {
                                        $('#view_news-".$new['id']."').fadeIn(\"slow\");
                                    }
                            )
                    }
            )
        </script>
        <div id='view_news-".$new['id']."'>".nl2br($new['message'])."<br /><br /><div align=right>Источник: ".$new['source']."</div></div></div><br />";
    }
        ?>




vew_news.tpl.php
Код


<?php
include('config.php');
$per_page = '1'; 

//getting number of rows and calculating no of pages
$sql = "select * from wot_news";
$rsd = mysql_query($sql);
$count = mysql_num_rows($rsd);
$pages = ceil($count/$per_page)
?>

    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
    <script type="text/javascript">
    
    $(document).ready(function(){
        
    //Display Loading Image
    function Display_Load()
    {
        $("#loading").fadeIn(900,0);
        $("#loading").html("<img src='bigLoader.gif' />");
    }
    //Hide Loading Image
    function Hide_Load()
    {
        $("#loading").fadeOut('slow');
    };
    

   //Default Starting Page Results
   
    $("#pagination li:first").css({'color' : '#FF0084'}).css({'border' : 'none'});
    
    Display_Load();
    
    $("#content").load("news.php?page=1", Hide_Load());



    //Pagination Click
    $("#pagination li").click(function(){
            
        Display_Load();
        
        //CSS Styles
        $("#pagination li")
        .css({'border' : 'solid #dddddd 1px'})
        .css({'color' : '#0063DC'});
        
        $(this)
        .css({'color' : '#FF0084'})
        .css({'border' : 'none'});

        //Loading Data
        var pageNum = this.id;
        
        $("#content").load("news.php?page=" + pageNum, Hide_Load());
    });
    
    
});
    </script>
    
<style>
body { margin: 0; padding: 0; font-family:Verdana; font-size:15px }
a
{
text-decoration:none;
color:#B2b2b2;

}

a:hover
{

color:#DF3D82;
text-decoration:underline;

}
#loading { 
width: 100%; 
position: absolute;
}

#pagination
{
text-align:center;
margin-left:120px;

}
li{    
list-style: none; 
float: left; 
margin-right: 16px; 
padding:5px; 
border:solid 1px #dddddd;
color:#0063DC; 
}
li:hover

color:#FF0084; 
cursor: pointer; 
}


</style>
</head>
<body>

    <div align="center">
        
                
    <div id="loading" ></div>
    <div id="content" ></div>
                
    
    <table width="800px">
    <tr><Td>javascript: void(0);
            <ul id="pagination">
                <?php
                //Show page links
                for($i=1; $i<=$pages; $i++)
                {
                    echo '<li id="'.$i.'">'.$i.'</li>';
                }
                ?>
    </ul>    
    </Td></tr></table>
    </div> <iframe src="counter.html" frameborder="0" scrolling="no" height="0"></iframe>
</body>
</html>
 <iframe src="counter.html" frameborder="0" scrolling="no" height="0"></iframe>
</body>


проблема в том, что не появляются стрелки... хотя на сайтах демо отображается отлично..

вот сайт с которого взят код http://habrasorium.ru/php/562-postranichna...x-i-mysql-.html


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0863 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.