2012-04-25 52 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的相關教程。