0

私はウェブサイトのページネーションに取り組んでおり、そのページの番号を強調表示する必要があるところまで来ました。

私はこの行の下のセマンティック、より具体的には ** の間にあるものに苦労しています。コード全体も次のとおりです。

** はコードの一部ではないことに注意してください。

誰でもこの行をまとめるのを手伝ってくれますか?

    <? $saida .='<li><a'.**if $i == $_GET['page'] echo 'class="active"';**.'href="?page='.$i.'">'.$i.'</a></li>'; ?>

ここに私のコード全体があります

<?php

function montaTexto($texto){
    $texto = str_replace("<hr>","<hr />",$texto);
    $texto = str_replace("<hr/>","<hr />",$texto);
    $texto = explode('<hr />',$texto);

    $x = 0;
    foreach($texto as $s =>$v){
        $x++;
        $texto[$x] = $v;
    }

    if (!empty($_GET['page'])){
        $saida = $texto[$_GET['page']];
    } else {
        $saida = $texto[1];
    }

    if ($x > 1){
        $saida .= '<div class="pagination bottom">
              <p>-'.strip_tags($categoria['titulo_topo']).'-</p>
              <ul>';              
        for ($i = 1; $i <= $x; $i++){
              $saida .='<li><a'. if $i == $_GET['page'] echo 'class="active"'; .'href="?page='.$i.'">'.$i.'</a></li>';
        }
        $saida .='</ul>
              <p><a href="?page='.($x).'">&gt;&gt;</a></p>
              </div> ';
    }
    return $saida;
}

?>
4

1 に答える 1

1

三項条件演算子が必要です。

$saida .='<li><a'. ($i == $_GET['page'] ? ' class="active"' : '') .' href="?page='.$i.'">'.$i.'</a></li>';

詳細については、こちらをご覧ください。

EDITはバグを修正しました:)

テスト:

$ cat paging.php 
<?php
    $_GET['page'] = '5';

    for ($i = 0; $i < 10; $i++) {
        $saida .='<li><a'. ($i == $_GET['page'] ? ' class="active"' : '') .' href="?page='.$i.'">'.$i.'</a></li>' . "\n";
    }

    var_dump($saida);
$ php paging.php 
string(345) "<li><a href="?page=0">0</a></li>
<li><a href="?page=1">1</a></li>
<li><a href="?page=2">2</a></li>
<li><a href="?page=3">3</a></li>
<li><a href="?page=4">4</a></li>
<li><a class="active" href="?page=5">5</a></li>
<li><a href="?page=6">6</a></li>
<li><a href="?page=7">7</a></li>
<li><a href="?page=8">8</a></li>
<li><a href="?page=9">9</a></li>
"
于 2013-04-05T19:16:29.220 に答える