2012-04-25 122 views
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> 
+0

原始选择来自哪里,php? – jeroen 2012-04-25 14:29:53

回答

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> 
+0

谢谢,这正是我正在寻找的。 – Dave 2012-04-25 14:45:56

+0

我试图找出它......但onchange脚本不再使用此代码。 – Dave 2012-04-25 14:55:31

+1

@Dave:我大写了'GetElementById'的'ID'部分。改变这一切,一切都应该很好。我也会纠正我的代码,我的歉意。 – 2012-04-25 14:56:44

1

您需要使用LIMIT子句中的SQL语句来限制多少项目是由查询返回。

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

这是分页的一部分。有很多关于如何通过快速的Google搜索找到的PHP的相关教程。