2010-08-08 6 views
0

Je l'ai pour la navigation, et quand je passe à la page 2, il va perdre le & type = Disons que je sélectionne "vérifié", la première page il montre bien, car il het toute la chaîne, mais quand je changer de page, il perd ... voici le code:Ma navigation ne sera pas & type =, quel est le problème?

// 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 

J'ai essayé d'ajouter & type = ». $ _ GET [ 'type']. à array_unshift, mais cela ne fonctionne pas .. toute aide sera appréciée! Merci.

+0

«J'ai le code de moi, s'il vous plaît le débugger pour moi » est pas question tout le monde rêve de –

+0

J'apprends php, je ne demande pas à vous de le réparer, Je veux savoir ce qui ne va pas .. merci – raFF

Répondre

1

Il est en dehors de la citation:

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

Il devrait être

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

(Notez l'emplacement du guillemet ...

+0

wow, merci beaucoup, je ne le remarquerais jamais! : D – raFF

0

Dans votre code, vous avez fait une erreur avec la syntaxe HTML:

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

Comme vous pouvez le voir, le " est un peu trop tôt, devant &type= alors qu'il aurait dû l'être plus tard. Qu'est-ce que vous voulez vraiment faire est

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

merci monsieur, j'apprécie votre aide. :RÉ – raFF

0

Si peut-être plus facile si vous construisez l'URL à l'avance:

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

qui le rend plus facile à appliquer encodages appropriés pour les deux contextes (urlencode pour la requête URL et htmlspecialchars valeur d'attribut HTML). Ou le faire en utilisant 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"); 
Questions connexes