我正在尝试从mysql表填充下拉列表。我能够成功填充它。但是当我在提交表单后尝试检索数据时,我无法检索选定的值。任何人都可以帮我吗?
$authorDB=new AuthorDB();
$myArr =$authorDB->retrieveAuthors();
echo '<tr>
<td rowspan="3"><div style="position: relative;">Author</div></td>
<td>
<select name="selAuthor" id="$selAuthor" multiple="multiple" size="3">';
foreach ($myArr as &$s_author)
{
echo '<option value='.$s_author.'>'.$s_author.'</option>';
}
'</select>
</td>
</tr>'
enter code here
并在提交表格后
$a_SelectedAuthors[]=$_POST["selAuthor"];
$nAuthors = count($a_SelectedAuthors);
echo '<h1> Count :'.$nAuthors.'</h1>';
for($i=0; $i < $nAuthors; $i++)
{
echo($a_SelectedAuthors[$i] . " ");
}
答案 0 :(得分:2)
因为您要将多个值作为数组提交,所以需要使用selAuthor []作为name属性的值。
<select name="selAuthor[]" id="$selAuthor" multiple="multiple" size="3">
答案 1 :(得分:1)
在提交后设置$a_SelectedAuthors
时删除括号:
替换
$a_SelectedAuthors[]=$_POST["selAuthor"];
与
$a_SelectedAuthors=$_POST["selAuthor"];
并将它们添加到select:
的name-attribute中<select name="selAuthor[]" id="$selAuthor" multiple="multiple" size="3">
答案 2 :(得分:0)
检查代码的其余部分:
关闭select标记的行</select> ...
可能无法打印,因为没有应该打印它的echo
。在上面的那个之后有一个分号!
也许这是一个错字。