2012-03-07 144 views
0

我想從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

回答

2

由於您提交多個值作爲一個數組,你需要使用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

1

刪除括號,同時設定$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

0

檢查你的代碼的其餘部分:因爲沒有echo應該打印

線條</select> ...關閉選擇標籤可能無法打印。在上面的那個之後有一個分號!

也許這是一個錯字。