【发布时间】:2020-11-25 03:32:13
【问题描述】:
这里有一个小代码 sn-p,效果不错,但不是我想要达到的效果:
<html>
<head>
</head>
<body>
<form method='post'>
Display
<select name="displayOptions" onchange="this.form.submit()">
<option selected value="all">all</option>
<option value="open">open</option>
<option value="reserved">reserved</option>
<option value="blocked">blocked</option>
</select> computers
</form>
<?php
if(isset($_POST["displayOptions"])){
if ($_POST["displayOptions"]=='all')
allFunction();
if ($_POST["displayOptions"]=='open')
openFunction();
etc...
}
?>
</body>
</html>
一旦用户选择了一个下拉选项,我希望该操作发生。我还希望默认操作为“全部”,并且在加载表单后立即发生。上面的代码 sn-p 运行良好,但有两件事除外。
- 'all' 默认被选中(按预期工作),但是 allFunction() 不运行。即使您选择另一个选项,然后再次选择“全部”,“全部”仍然不起作用。我希望 allFunction 在此表单加载并选择“全部”后立即运行,当然,以后能够再次选择“全部”。
- 无论何时选择不同的选项,它都会加载正确的函数 (WAI),但下拉菜单会变回全部。我知道它为什么这样做(因为正在重新加载页面并且“all”是默认选择值),但我希望它保留在所选选项上!
当我输入此内容时,我感觉我可以使用 $_SESSION 变量来处理 #2,但我仍然很难理解为什么选择下拉列表中的第一个选项没有注册。
【问题讨论】:
-
使用 ajax 可能会受益更多。从教程中寻找那个和示例。外面有很多东西,相信我。我不会误导你的。
-
如果这确实源于可能的错误,请检查您的控制台并启用错误报告。
标签: javascript php html forms function