2010-08-08 39 views
0

我有这个导航,当我切换到第2页时,它将丢失& type = 假设我选择“checked”,第一页显示正常,因为它与整个字符串 相关,但当我切换它失去的网页...这里是代码:我的导航不会得到&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 

我试着加入&类型=”。$ _ GET [ '型'。到array_unshift,但它不工作.. 任何帮助将不胜感激!谢谢。

+0

“我有我的代码,请调试它为我”不是 – 2010-08-08 15:00:31

+0

我学习PHP的一个问题每个人的梦想,我不是让你来解决它,我想知道什么是错的..谢谢 – raFF 2010-08-08 15:01:45

回答

1

它的报价之外:

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

应该

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

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

+0

哇,非常感谢你,我永远不会注意到! :D – raFF 2010-08-08 15:07:01

0

在你的代码,你做了一个错误使用HTML语法:

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

正如你所看到的,"稍微早一些,在&type=之前应该已经过了。你真正想要做的是

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

谢谢先生,我感谢你的帮助。 :d – raFF 2010-08-08 15:08:52

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