當我因爲PHP中的錯誤而返回給用戶時,我可以給文本框一個類似於value = "<?php if(isset($_POST['abc'])){echo $_POST['abc'];}
之類的值。我該怎麼做與<select>
組合框的等價物?如何在頁面重置時設置組合框值?
0
A
回答
2
這取決於你的意思是什麼refreshed
。
如果您的意思是在沒有任何發佈的情況下對頁面進行文字刷新/重新加載,則可以使用javascript存儲更改時的值,並在刷新/加載頁面時加載該值。您的存儲選項根據訪客計算機上的cookie和本地存儲到使用ajax的服務器端存儲而有所不同。
如果你談論的是,當你在稍後的時間加載相同頁面使用以前保存/發佈的價值觀,這是一個不同的故事,雖然AJAX方法是有效的,以及有(可能沒有必要雖然)。
編輯:根據您的編輯,你需要添加selected="selected"
到以前選擇的選項。
所以,你這樣做:
foreach($options as $key => $value) // the loop, if any...
{
echo "<li value='{$key}'";
if ($key == $_POST['def'])
{
echo ' selected="selected"';
}
echo ">{$value}</li>"
}
+0
我澄清了我的問題。 – fdsa
1
這是一個示例:
<?php
$cbo_sel = 'SELECTED="SELECTED"'; //to make an item selected, append this attribute to that <option> element
$post_success = false; //becomes true only when the data submitted is processed successfully
$name = '';
$email = '';
$grade = '';
$user_msg = ''; //holds the messages to the user
if($_SERVER['REQUEST_METHOD']=='POST')
{
//assigning the values
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$grade = isset($_POST['grade']) ? trim($_POST['grade']) : '';
//do validation here
if($name == '') // && any_regex_if_needed
$user_msg = "Where is your name ?";
else if($email == '')
$user_msg = "How am I gonna contact you ?";
else if($grade == '')
$user_msg = "Oh! Don't hide your grade from me !";
else
{
//everything is okay.. now do your things here... like inserting this to database or calculating or mailing, etc...
//...
//...
$user_msg = 'Success !';
$post_success = true; //success
}
}
?>
<!DOCTYPE html>
<html>
<head><title>Testing..</title></head>
<body>
<div><?php echo $user_msg; ?></div>
<form method="POST">
Name:
<input type="text" name="name" value="<?php echo (!$post_success)?$name:''; ?>" /> <br />
Email:
<input type="text" name="email" value="<?php echo (!$post_success)?$email:''; ?>" /> <br />
Grade:
<select name="grade">
<option value="A" <?php echo ($grade=='A' && !$post_success)?$cbo_sel:''; ?>>A</option> <!-- if grade='A' and if the data submitted was not processed(because of failed validation), then display the value -->
<option value="B" <?php echo ($grade=='B' && !$post_success)?$cbo_sel:''; ?>>B</option>
<option value="C" <?php echo ($grade=='C' && !$post_success)?$cbo_sel:''; ?>>C</option>
<option value="D" <?php echo ($grade=='D' && !$post_success)?$cbo_sel:''; ?>>D</option>
</select>
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
在這裏,我硬編碼的選項。因此,如果有多個項目的冗長下拉,請使用循環並使用if語句檢查選項。
也許這可以改善。我歡迎所有的建議。 :)
相關問題
- 1. 如何重置組合框?
- 2. 如何在頁面加載時設置文本框的值?
- 3. 如何設置組合框中的值但沒有重複c#
- 4. 如何在WPF中重置組合框
- 5. Vaadin在組合框填充後設置組合框的值
- 6. 如何在Kendo組合框組件上設置自定義值?
- 7. 當頁面加載時將值設置爲jquery自動完成組合框
- 8. 如何「重置」Lovecombo組合框?
- 9. 使用新值重置組合框
- 10. Kendo UI組合框重置值
- 11. 如何將colums設置爲組合框
- 12. 如何設置jquery組合框爲true
- 13. 如何爲jQuery組合框設置TabIndex?
- 14. 如何設置ZK組合框寬度
- 15. ExtJs 3組合框設置默認值
- 16. 設置自定義值,組合框
- 17. ExtJs組合框沒有設置值
- 18. 設置多個值組合框
- 19. 組合框設置默認值
- 20. 組合框的默認值(設置ONCE)
- 21. 設置組合框的默認值
- 22. 無法將值設置爲組合框
- 23. propertygrid組合框設置值(jeasyui)
- 24. 設置組合框的默認值
- 25. C#Winforms - 設置組合框選定值
- 26. 設置多個組合框值
- 27. 如何在javascript中設置網格組合框值?
- 28. 如何在Swt組合框中設置默認值?
- 29. 如何在組合框中設置百里香葉的值
- 30. 如何在devexpress組合框BarItem中設置SelectedItem屬性的值?
我不知道這將無法在PHP中做。而不是PHP我們可以使用jQuery餅乾來解決這個問題 – MMK