PHP с внешнего якоря на внутренний - PullRequest
0 голосов
/ 04 июня 2011

Я изменил свой проект на одностраничный тип веб-сайта.

Часть кода выглядит так:

for ($i = 1; $i <= $total_pages; $i++)
{                                    
    echo '<a href="view.php?page='.$i.'" data-role="button">'.$i.'</a>';

}

Мне нужен этот код выше для работы, например, с внутренней ссылкой:

Отсюда:

echo '<a href="view.php?page='.$i.'" data-role="button">'.$i.'</a>';

TO

echo '<a href="#my-anchor?page='.$i.'" data-role="button">'.$i.'</a>';

Вот полный исходный код:

$per_page = 6;
$result = mysql_query("SELECT * FROM mytable ORDER BY date DESC");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);

if (isset($_GET['page']) && is_numeric($_GET['page']))
{
   $show_page = $_GET['page'];    
   if ($show_page > 0 && $show_page <= $total_pages)
   {
        $start = ($show_page -1) * $per_page;
        $end = $start + $per_page;
   }
   else
   {
        // error - show first set of results
        $start = 0;
        $end = $per_page;
   }                  
}
else
{
   // if page isn't set, show first set of results
      $start = 0;
      $end = $per_page;
}

// display pagination    
echo '<strong>View Page:</strong> ';
echo '<div data-role="controlgroup" data-type="horizontal">';
for ($i = 1; $i <= $total_pages; $i++)
{          
     echo '<a href="view.php?page='.$i.'" data-role="button">'.$i.'</a>';
     //echo '<a href="#view-pag-events" data-role="button">'.$i.'</a>';                
}    
echo '</div>';

Мне нужно изменить это:

echo '<a href="view.php?page='.$i.'" data-role="button">'.$i.'</a>';

так что это внутреннее.

Ответы [ 2 ]

0 голосов
/ 04 июня 2011

Краткий ответ: Этого нельзя сделать только на PHP. Вам нужно будет отправить запросы AJAX в PHP-скрипт, который собирает данные.

По сути, это будет включать создание некоторого javascript, который прослушивает любые изменения в хэше (это часть после #);

(function(window) {
    var hash = window.location.hash;
    setTimeout(function() {
        if(window.location.hash !== hash) {
            hash = window.location.hash;
            //Grab and update page with ajax...
        }
        setTimeout(arguments.callee, 50);
    }, 50);
})(window);

Основы AJAX: W3Schools . И, пожалуйста, уважайте кнопку возврата .

0 голосов
/ 04 июня 2011

Без перезагрузки страницы:

<a href="#my-anchor">foo</a>

Если вы измените строку запроса в ссылке, страница перезагрузится и перейдет к привязке:

<a href="?foo=bar#my-anchor">foo</a>

Или с помощью JQuery:

<script type="text/javascript">
$(document).ready(function(){
   window.location.hash = 'my-anchor';
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...