我的导航不会得到& type =,有什么不对?

时间:2010-08-08 14:57:39

标签: php get

我有这个用于导航,当我切换到第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

我尝试将&amp; type ='。$ _ GET ['type']。添加到array_unshift,但它不起作用.. 任何帮助将不胜感激!感谢。

3 个答案:

答案 0 :(得分:1)

这不在引语之内:

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

应该是

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

(注意双引号的位置......

答案 1 :(得分:0)

在您的代码中,您使用HTML语法完成了错误:

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

正如你所看到的那样,"&type=之前有点早到它应该在之后。你真正想做的是

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

答案 2 :(得分:0)

如果您提前构建网址可能会更容易:

$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");