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] . " "); 
} 
+0

你应该给我们更多的细节?你是否$ _POST ['selAuthor']是空的?如果是,您是否检查过您没有使用GET方法表单? – AsTeR 2012-03-07 07:19:34

由于您提交多个值作为一个数组,你需要使用selAuthor []作为name属性的值。

<select name="selAuthor[]" id="$selAuthor" multiple="multiple" size="3"> 
+0

它正在工作,但如果我有'xyz pqr'选项它只是给xyz.why是吗? – user1247412 2012-03-07 07:24:22

+0

没有引用你的价值。 '

+0

非常感谢。 – 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"> 
+0

这是行不通 – user1247412 2012-03-07 07:20:54

检查你的代码的其余部分:因为没有echo应该打印

线条</select> ...关闭选择标签可能无法打印。在上面的那个之后有一个分号!

也许这是一个错字。