根据发布请求选择一个选择列表

时间:2012-12-11 16:22:09

标签: php html

拜托,我对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。但我希望它仍然是我搜索的选项。任何建议都将不胜感激。

3 个答案:

答案 0 :(得分: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>

通过这种方式,您可以快速添加更多值而无需重复代码。

答案 1 :(得分: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>

真的很丑,但确实有效。

答案 2 :(得分: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>