1

我似乎在任何地方都找不到这个。如果它很简单,我很抱歉。

我正在尝试在 html 中制作简单的下拉框,以显示许多留言簿条目。我正在使用 php 来处理数据库请求等。我对这一切都很好。我只是希望能够根据选择的条目数更改选择框上的默认选项。

是否有捷径可寻?我感觉它与一个简单的 javascript 调用有关,但我对这一切还是很陌生。

这是html:

<form id="displayform" action="guestbook.php" method="POST" >
Currently Displaying  <select name="display" id="display" onchange="document.getElementById('displayform').submit()">
<option value="10" > 10 </option>
<option value="25" > 25 </option>
<option value="50"> 50 </option>
<option value="ALL"> ALL </option>      
</select>   results per page
</form>
4

2 回答 2

2

不需要 javascript,这可以通过 PHP 处理。甚至还可以重构!

<?php
  $options = array(10, 25, 50, 'ALL');
  $selOpt = in_array($_POST['display'], $options) ? $_POST['display'] : $options[0];
?>
<form id="displayform" action="guestbook.php" method="POST">
  Currently Displaying
  <select name="display" id="display" onchange="document.getElementById('displayform').submit();">
    <?php foreach ($options as $option){ ?>
    <option value="<?=$option;?>"<?=($selOpt==$option?' select="selected"':'');?>>
      <?=$option;?>
    </option>
    <?php } ?>
  </select>
</form>
于 2012-04-25T14:33:38.573 回答
1

您需要LIMIT在 SQL 语句中使用该子句来限制查询返回的项目数。

<?php
    $limit = (int) $_POST['display'];
    $sql = 'SELECT * FROM guestbook ORDER BY date_enterred LIMIT ' . $limit;
?>

这是分页的一部分。有很多关于如何使用 PHP 执行此操作的好教程,可以通过快速 Google 搜索找到。

于 2012-04-25T14:32:05.247 回答