如果没有选择任何内容,如何使用get提交具有默认值的表单?

时间:2011-12-02 19:27:44

标签: php html get

这是我的表格:

$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值

3 个答案:

答案 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定义。