PHP和mysql多选下拉列表

时间:2012-03-07 07:16:20

标签: php

我正在尝试从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] . " ");
}

3 个答案:

答案 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。在上面的那个之后有一个分号!

也许这是一个错字。