Моя навигация не будет отображаться & type =, что не так? - PullRequest
0 голосов
/ 08 августа 2010

У меня есть это для навигации, и когда я переключаюсь на страницу 2, он теряет & type = Допустим, я выбрал «флажок», первая страница показывает нормально, так как он перебирает всю строку, но когда я переключаю страницыон теряет ... вот код:

    // navigation
if($_GET['start'] && is_numeric($_GET['start']))
{
    $start=$_GET['start'];
    $start=((int)($start/$search_count))*$search_count;
}
else $start=0;
$info['curpage']=ceil(($start+1)/$search_count);
$info['total_pages']=ceil($info['total_results_count']/$search_count);
$navigation=array();
$navigation[]='<span class="navi navi_current"> -'.$info['curpage'].'- </span>'."\n";
$inc=$dec=$start;
$tcnt=0;
for($i=0;$i<9;$i++)
{
    $inc+=$search_count;
    $incp=ceil(($inc+1)/$search_count);
    $dec-=$search_count;
    $decp=ceil(($dec+1)/$search_count);
    if($inc<$info['total_results_count'])
    {
        array_push($navigation,'<span class="navi"> <a href="./?q='.$_GET['q'].'&start='.$inc.'"&type='.$_GET['type'].'>'.$incp.'</a> </span> '."\n");
        $tcnt++;
    }
    if($dec>=0)
    {
        array_unshift($navigation,'<span class="navi"> <a href="./?q='.$_GET['q'].'&start='.$dec.'">'.$decp.'</a> </span> '."\n");
        $tcnt++;
    }
    if($tcnt>=10) break;
}
$navigation=join("",$navigation);
// end navigation

Я пытался добавить & type = '. $ _ GET [' type ']. в array_unshift, но это не такработа .. любая помощь будет оценена!спасибо.

Ответы [ 3 ]

1 голос
/ 08 августа 2010

Это за пределами цитаты:

'&start='.$inc.'"&type='.$_GET['type'].'

Это должно быть

'&start='.$inc.'&type='.$_GET['type'].'"

(Обратите внимание на размещение двойной кавычки ...

0 голосов
/ 08 августа 2010

Если может быть проще, если вы создадите URL заранее:

$href = './?q='.urlencode($_GET['q']).'&start='.$inc.'"&type='.urlencode($_GET['type']);
array_push($navigation,'<span class="navi"> <a href="'.htmlspecialchars($href).'">'.$incp.'</a> </span> '."\n");

Это упрощает применение правильных кодировок для двух контекстов (urlencode для запроса URL иhtmlspecialchars значение атрибута HTML).Или сделать это, используя http_build_query:

$args = array('q'=>$_GET['q'], 'start'=>$inc, 'type'=>$_GET['type']);
$href = './?'.http_build_query($args, '', '&amp;');
array_push($navigation,'<span class="navi"> <a href="'.$href.'">'.$incp.'</a> </span> '."\n");
0 голосов
/ 08 августа 2010

В вашем коде вы допустили ошибку с HTML-синтаксисом:

<a href="./?q='.$_GET['q'].'&start='.$inc.'"&type='.$_GET['type'].'>

Как видите, " немного рано, перед &type=, когдаэто должно было быть после.Что вы действительно хотите сделать, это

<a href="./?q='.$_GET['q'].'&start='.$inc.'&type='.$_GET['type'].'">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...