-1
<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>
 <?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;
}
?>

質問:

category1 ではなく、category2 を選択ボックスのデフォルト値にするにはどうすればよいですか? 私はこれを試しました:

<Option VALUE="category2" <?php
echo (isset($_POST['field']) && $_POST['field'] === 'category2') ? 'selected="selected"' : '';
?> selected = "selected">category2</option>

しかし、それは私の機能を壊します。を入力1して選択するとcategory1、検索をクリックした後、選択ボックスが に変わりましたcategory2。それは私が望むものではありません。この関数を次のように実行したい:

  1. ユーザーが入力フィールドと選択ボックスに入力した値を覚えておいてください。
  2. category2選択ボックスのデフォルト値を設定します。

どうすればこれを達成できますか?

4

2 に答える 2

0

あなたはこのように使うかもしれません

<form method="post"> 
<Select name="field">
 <Option VALUE="category2" >category2</option>
 <Option <?php  if($_POST['field'] == "category1")  echo 'selected="selected"'; ?> VALUE="category1" >category1</option>
 <Option <?php  if($_POST['field'] == "category3")  echo 'selected="selected"'; ?> VALUE="category3" >category3</option>
 </Select>
 <input type="submit" />
 </form>
于 2013-05-22T08:26:38.363 に答える