PHP和MySQL多选择下拉列表
我想从mysql表中填充下拉列表。我能够成功地填充它。但是当我在提交表单后尝试检索数据时,我无法检索选定的值。谁可以帮我这个事?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] . " ");
}
由于您提交多个值作为一个数组,你需要使用selAuthor []作为name属性的值。
<select name="selAuthor[]" id="$selAuthor" multiple="multiple" size="3">
它正在工作,但如果我有'xyz pqr'选项它只是给xyz.why是吗? – user1247412 2012-03-07 07:24:22
没有引用你的价值。 '
非常感谢。 – user1247412 2012-03-07 07:28:18
删除括号,同时设定$a_SelectedAuthors
后提交后:
更换
$a_SelectedAuthors[]=$_POST["selAuthor"];
与
$a_SelectedAuthors=$_POST["selAuthor"];
,并将它们添加到选择的名称属性:
<select name="selAuthor[]" id="$selAuthor" multiple="multiple" size="3">
这是行不通 – user1247412 2012-03-07 07:20:54
检查你的代码的其余部分:因为没有echo
应该打印
线条</select> ...
关闭选择标签可能无法打印。在上面的那个之后有一个分号!
也许这是一个错字。
你应该给我们更多的细节?你是否$ _POST ['selAuthor']是空的?如果是,您是否检查过您没有使用GET方法表单? – AsTeR 2012-03-07 07:19:34