<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”显示在选择框中。
答案 0 :(得分:1)
假设这是您的用户名输入/表单
<input type="text" name="username" value="" />
现在位于value=""
的内部,如果有人发帖,你必须记住PHP代码。很像:
<?php if(isset($_POST['username'])) echo $_POST['username']; endif ?>
这意味着,如果一个人已经提交了一个用户名,那么它将保留在那里,否则它将只是空的。
你可以创建一个小功能,而不是把大量的代码放在里面,
答案 1 :(得分:1)
使用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>