Php 根据post请求选择选择列表

Php 根据post请求选择选择列表,php,html,Php,Html,拜托,我对php有点陌生,请容忍我。 我有一个选择框 <select name="criteria"> <option value="1">Student ID</option> <option value="2">Firstname </option> <option value="3">Lastname</option> <option v

拜托,我对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">

学生证
名字
姓氏
全部的
当我在post请求后使用特定选项搜索时,所选选项通常默认为Student ID。但我希望它仍然保留我搜索时使用的选项。如有任何建议,将不胜感激。


<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>
>名字 >全部

真的很难看,但这是可行的。

您需要检查
$\u 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>

>名字
>全部

老实说,我会稍微调整一下您的选择代码,以便进行更动态的编辑

<?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>


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

是的,从第一眼看,我知道这是可行的。我喜欢你的实施。谢谢