2013-05-20 43 views
2
<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,然後選擇「類別2」,它表明:花,但提交的輸入變成空的,選擇框回去'category1',有沒有一種方法,我可以讓輸入框和選擇框保持我放在那裏的價值,在我的情況下,我點擊提交botton後,'1'仍然在輸入字段,'category2'顯示在選擇框。

回答

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

比方說,這是你的用戶名輸入/形式

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

現在裏面的地方說:value="",你必須把PHP代碼要記住,如果有人發佈了。就像:

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

這意味着,如果一個persone已經提交了一個用戶名,它會在那裏住,否則,它將是空的。

你可以創建雖然稍微功能,而不是把太多的內部代碼,