我正在尝试实现项目选择下拉列表,该列表将所选值存储到数组中,以便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>
即使我到达了我需要的地方,有人可以提出建议吗,我想了解幕后背后是什么。
答案 0 :(得分:2)
试试这个......
if(isset($_POST['FLexA'])) {
//your code
}
答案 1 :(得分:2)
如果您使用此脚本显示初始表单并处理表单提交,则$_POST
变量仅在用户提交表单时设置。当他第一次进入页面时,他没有提交任何内容,因此没有$_POST
变量,并且您会收到有关未定义索引的警告。
如果之前没有发生这种情况,有人可能会更改php.ini中的错误报告设置,以便现在显示通知。
您应该将测试更改为:
isset($_POST['FlexA']) && $_POST['FLexA'] == "1"
答案 2 :(得分:1)
使用<?php
和?>
打开和关闭php标记
同样使用if(isset($_POST['customName']))
确保它们存在,如@ user1844933所示。
答案 3 :(得分:0)
为了使您的PHP-in-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>