0

我目前正在将以下代码段用于即兴分页系统。不幸的是,我遇到了一些障碍。该变量$result->info['pages']由远程 API 返回,是可用的页面数。变量$result->info['page']是当前可见的页面。链接按预期显示在正确的位置,但它们的行为就像页面始终为 1(“1”链接始终显示为纯文本,其他所有内容始终显示为链接)。但是,如果我回显$result->info['page'],它会显示正确的页码,并且显示的信息是正确的。关于我可能做错了什么的想法?

<?php if ($result->info['pages'] > '1') {
    if ($result->info['page'] != '1') {
        echo '<a onClick="location.replace(\'?page=' . --$result->info['page'] . '\');">Prev</a> ';
    } else {
        echo 'Prev ';
    }
    for ($i = 1; $i <= $result->info['pages']; $i++) {
        if ($i == $result->info['page']) {
            echo $i . ' ';
        } else {
            echo '<a onClick="location.replace(\'?page=' . $i .'\');">' . $i . '</a> ';
        }
    }
    if ($result->info['page'] != $result->info['pages']) {
        echo '<a onClick="location.replace(\'?page=' . ++$result->info['page'] . '\');">Next</a>';
    } else {
        echo 'Next';
    }
} ?>
4

1 回答 1

1

您无需修改--$result->info['page']​​,只需将其替换为($result->info['page'] - 1),一切都会顺利

http://ideone.com/WiGh4

<?php

$result = new stdClass();
$result->info = array(
    'pages' => 2,
    'page' => 2
);

if ($result->info['pages'] > '1') {
    if ($result->info['page'] != '1') {
        echo '<a onClick="location.replace(\'?page=' . ($result->info['page'] - 1) . '\');">Prev</a> ';
    } else {
        echo 'Prev ';
    }
    for ($i = 1; $i <= $result->info['pages']; $i++) {
        if ($i == $result->info['page']) {
            echo $i . ' ';
        } else {
            echo '<a onClick="location.replace(\'?page=' . $i .'\');">' . $i . '</a> ';
        }
    }
    if ($result->info['page'] != $result->info['pages']) {
        echo '<a onClick="location.replace(\'?page=' . ($result->info['page'] + 1) . '\');">Next</a>';
    } else {
        echo 'Next';
    }
}

?>
于 2012-05-31T20:55:45.873 回答