我正在尝试实现一个项目选择下拉列表,该下拉列表将所选值存储到数组中,以便php处理到查询中。
使用这个:
<select name="FLexA" width="300" style="width: 30%">
<option value=" "> </option>
<option value="1" <?= $_POST['FLexA'] == "1" ? 'selected' : '' ?>>Selection item 1...</option>
<option value="2" <?= $_POST['FLexA'] == "2" ? 'selected' : '' ?>>Selection item 2...</option>
</select>
返回"注意:未定义的索引..."在 FlexA 上
虽然使用下面的通知错误处理程序"@"工作正常,但我记得,当我第一次在没有@错误处理程序的情况下在表单上使用它时,它就可以工作。
<select name="FLexA" width="300" style="width: 30%">
<option value=" "> </option>
<option value="1" <?= @$_POST['FLexA'] == "1" ? 'selected' : '' ?>>Selection item 1...</option>
<option value="2" <?= @$_POST['FLexA'] == "2" ? 'selected' : '' ?>>Selection item 2...</option>
</select>
有人可以建议即使我到达我需要的地方,我也想了解幕后是什么。
试试这个...
if(isset($_POST['FLexA'])) {
//your code
}
如果使用此脚本显示初始表单并处理表单提交,则仅在用户提交表单时设置$_POST
变量。当他第一次进入页面时,他没有提交任何内容,因此没有$_POST
变量,并且您会收到有关未定义索引的警告。
如果以前没有发生这种情况,那么有人可能会更改 php 中的错误报告设置.ini以便它现在显示通知。
您应该将测试更改为:
isset($_POST['FlexA']) && $_POST['FLexA'] == "1"
使用<?php
和?>
打开和关闭 php 标签
还可以使用 if(isset($_POST['customName']))
来确保它们存在,正如@user1844933所建议的那样。
为了使 PHP 在 HTML 中更简洁,您可以考虑创建一个函数:
<?php
function selected($key, $val){
if(array_key_exists($key, $_POST)){
print(($_POST[$key] == $val) ? " selected" : "");
return true;
}
return false;
}
?>
<select name="FLexA" width="300" style="width: 30%">
<option value=" "> </option>
<option value="1"<?php selected("FLexA", "1"); ?>>Selection item 1...</option>
<option value="2"<?php selected("FLexA", "2"); ?>>Selection item 2...</option>
</select>