2012-12-11 64 views
0

請,我有點新與PHP熊與我。 我有一個選擇框...請選擇一個基於發佈請求的選擇列表

<select name="criteria"> 
     <option value="1">Student ID</option> 
     <option value="2">Firstname </option> 
     <option value="3">Lastname</option> 
     <option value="6">All</option> 
    </select> 

    <input name="searchvalue" type="text"> 
    <input name="search" type="submit" value="Search"> 

當我與一個特定的選項進行搜索,發佈請求後,所選擇的選項通常默認爲學生ID。但我希望它仍然是我搜索的選項。任何建議,將不勝感激。

回答

0
<select name="criteria"> 
    <option value="1" <?php if ($_POST["criteria"] == 1) echo "SELECTED"; ?>>Student ID</option> 
    <option value="2" <?php if ($_POST["criteria"] == 2) echo "SELECTED"; ?>>Firstname </option> 
    <option value="3" <?php if ($_POST["criteria"] == 3) echo "SELECTED"; ?>>Lastname</option> 
    <option value="6" <?php if ($_POST["criteria"] == 6) echo "SELECTED"; ?>>All</option> 
</select> 

真的很醜,但那是有效的。

+0

感謝佩德羅。醜陋??是!簡單易懂?是! – osg

0

您需要檢查$_POST陣列,並選擇相應的選擇項

<?php 
$criteria = isset($_POST['criteria']) ? $_POST['criteria']: 0; 
?> 
<select name="criteria"> 
    <option value="1" <?php echo ($criteria == '1') ? 'selected="selected"': ''; ?>>Student ID</option> 
    <option value="2" <?php echo ($criteria == '2') ? 'selected="selected"': ''; ?>>Firstname </option> 
    <option value="3" <?php echo ($criteria == '3') ? 'selected="selected"': ''; ?>>Lastname</option> 
    <option value="6" <?php echo ($criteria == '6') ? 'selected="selected"': ''; ?>>All</option> 
</select> 
+0

從第一眼看,我知道這是有效的。我喜歡你的實現。謝謝。 – osg

1

說實話,我會調整自己的選擇代碼只是一點點,允許多一點動態編輯..

<?php 
$options = array('1'=>'Student ID', '2'=>'Firstname', '3'=>'Lastname', '6'=>'All');  
?> 

<select name="criteria"> 

<?php 
foreach($options as $key=>$value){ 
    $addtItem = ''; 
    if(isset($_POST['criteria']) && $_POST['criteria']==$key){ 
     $addtItem = 'selected="selected"'; 
    } 
    echo('<option '.addtItem.' value="'.key.'">'.$value.'</option>'); 
} 

?> 

</select> 

這種方式可以快速增加更多的價值沒有一噸的重複代碼..