3
 <form name="search" method="post" >
 Seach for: <input type="text" name="find" /> in
 <Select NAME="field">
 <Option VALUE="category1">category1</option>
 <Option VALUE="category2">category2</option>
 </Select>
 <input type="submit" name="search" value="Search" />
 </form>

<?php
    if(!empty($_POST)){
        $options = array('category1'=> array('1' => 'dog', '2' => 'cat'), 'category2' =>array('1'=>'flower', '2'=>'grass'));
        $input = trim($_POST['find']);
        $category = $_POST['field'];
        $output = $options[$category][$input];
        echo $output;
}
?>

问题:

如果我输入1并选择'category2',它显示:flower,但输入字段变空,选择框回到'category1',有没有办法让输入框和选择框保留我输入的值就我而言,在我点击提交按钮后,“1”仍然在输入字段中,“category2”显示在选择框中。

4

2 回答 2

2

假设这是您的用户名输入/表单

<input type="text" name="username" value="" />

现在在它说的地方value="",如果有人发布了一些东西,你必须输入 PHP 代码才能被记住。很像:

<?php if(isset($_POST['username'])) echo $_POST['username']; endif ?>

这意味着,如果一个人已经提交了一个用户名,它将保留在那里,否则它将是空的。

你可以创建一个小函数,而不是在里面放那么多代码,

于 2013-05-20T02:42:59.613 回答
2

采用value="<?php if(isset($_POST[])) echo $_POST[]; ?>"

<form name="search" method="post" >
 Seach for: <input type="text" name="find" value="<?php echo (isset($_POST['find']) ? $_POST['find'] : ''); ?>" /> in
 <Select NAME="field">
 <Option VALUE="category1" <?php echo (isset($_POST['field']) && $_POST['field'] === 'category1') ? 'selected="selected"': ''; ?>>category1</option>
 <Option VALUE="category2" <?php echo (isset($_POST['field']) && $_POST['field'] === 'category2') ? 'selected="selected"': ''; ?>>category2</option>
 </Select>
 <input type="submit" name="search" value="Search" />
 </form>
于 2013-05-20T02:43:54.133 回答