为投递箱选项创建不同的默认值


Creating a varying default for a drop box option

我似乎在任何地方都找不到这个。如果它非常简单,我深表歉意。

我正在尝试在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>

不需要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>
您需要

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

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

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