这是我的表格:
$html = "";
$html .= "<div id='options'>";
$html .= "<form action='filter.php' method='get'>";
$html .= "<select multiple='multiple' name='options'>";
foreach($selectValues as $option){
$html .= "<option value='$option'>$option</option>";
}
$html .= "</select><input type='submit' value='submit'></form></div>";
但如果我没有从框中选择一个选项并且我提交我得到错误“未定义索引:选项”我希望能够提交并且如果没有选择则传递defualt值
答案 0 :(得分:2)
您可能应该在后端修改代码,而不是进行!empty($_GET['options'])
检查。其次,您的字段名称应为options[]
,而不是options
,因为它将被最后选择的值覆盖(由于PHP处理输入的方式)。第三,输出时,您可能希望htmlspecialchars()
$option
{{1}}。这可以确保奇怪的选项不会破坏您的HTML。最后,如果您的选项与其标签具有相同的值,则无需将其指定为值。
答案 1 :(得分:0)
这个怎么样?
$html = "";
$html .= "<div id='options'>";
$html .= "<form action='filter.php' method='get'>";
$html .= "<select multiple='multiple' name='options'>";
$html .= "<option value='default'>Select An Option</option>";
foreach($selectValues as $option){
$html .= "<option value='$option'>$option</option>";
}
$html .= "</select><input type='submit' value='submit'></form></div>";
答案 2 :(得分:0)
在选项之一上添加所选属性,如下所示:
$html = "";
$html .= "<div id='options'>";
$html .= "<form action='filter.php' method='get'>";
$html .= "<select multiple='multiple' name='options'>";
foreach($selectValues as $option){
$html .= "<option value='$option'" . ($option == 'my default option' ? ' selected="selected" : '') . ">$option</option>";
}
$html .= "</select><input type='submit' value='submit'></form></div>";
如果该选项等于“您的默认选项”并将selected="selected"
添加到默认选项,则立即生效。
但是,如果用户取消选择选项,则无效。
在尝试使用$ _GET ['options']之前,您应该始终检查它是否使用isset定义。