我写了这个函数,但是有问题。
当我显示带有页面(1,2,3)的下拉菜单时,每个页面有5种产品。当我单击下拉列表的数字2时,它不会显示接下来的5种产品,但它会重新出现在索引页面上。
我认为这个元素:PAGESETGOTO
的下拉页面值不高,而javascript可能有问题
您知道如何解决此问题吗?
TK
public function getPageSetLinks($parameters = null, $site = null)
{
$number_of_pages = ceil($this->page_set_total_rows / $this->page_set_results_per_page);
if (empty($parameters)) {
$parameters = '';
}
if (!empty($parameters)) {
parse_str($parameters, $p);
if (isset($p[$this->page_set_keyword])) {
unset($p[$this->page_set_keyword]);
}
$parameters = !empty($p) ? http_build_query($p) . '&' : '';
}
$pages = [];
for ($i = 1; $i <= $number_of_pages; $i++) {
$pages[] = [
'id' => $i,
'text' => $i
];
}
$output = '<nav aria-label="pagination">';
$output .= '<ul class="pagination pagination-sm">';
if ($number_of_pages > 1) {
--
-- the line for the dropdown
$output .= '<li class="page-item">' . HTML::selectField('pageset' . $this->page_set_keyword, $pages, $this->page_set, 'style="vertical-align: top; display: inline-block; float-md-left; height: 32px; width: 80px;" data-pageseturl="' . HTML::output($this->link(null, $parameters . $this->page_set_keyword . '=PAGESETGOTO')) . '"') . '</li>';
} else {
$output .= '<li class="page-item disabled"><a class="text-md-center page-link sr-only">1</a></li>';
}
$output .= '</ul>';
$output .= '</nav>';
if ($number_of_pages > 1) {
$output .= <<<EOD
<script>
$(function() {
$('select[name="pageset{$this->page_set_keyword}"]').on('change', function() {
window.location = $(this).data('pageseturl').replace('PAGESETGOTO', $(this).children(':selected').val());
});
});
</script>
EOD;
}
return $output;
}