我似乎在任何地方都找不到这个。如果它非常简单,我深表歉意。
我正在尝试在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搜索找到。