2014-11-22 27 views
1

是否可以分配多個值來選擇選項下拉列表?當他們被選中時,我需要從每個下拉菜單中檢索多個數據片段,並且我只能夠獲得「名稱」和「ID」。該名稱顯示供用戶選擇,但是它是傳遞要處理的ID。這裏是我的代碼:PHP多個隱藏值選項

<?php 
$att_1 = $att_1; 
mysql_connect("xx.xx.xx.xx","xxxxxx","xxxxxx"); 
mysql_select_db("dezanjow_cf"); 
$sql=mysql_query("select id, name from model"); 
if(mysql_num_rows($sql)){ 
$select= '<select name="model">'; 
$select.='<option value="default">Select Model</option>'; 
while($rs=mysql_fetch_array($sql)){ 
    $select.='<option value="'.$rs['id'].'">'.$rs['name'].'</option>'; 
    } 
} 
$select.='</select>'; 
echo $select; 
?> 

這將產生HTML,看起來像:

<select name="model"> 
<option value="default">Select Model</option> 
<option value="5">GH20</option> 
<option value="6">GH21</option> 
<option value="7">GH22</option> 
</select> 

我想這樣顯示它們(作爲例子):

<select name="model"> 
<option value="default">Select Model</option> 
<option value="5","abc">GH20</option> 
<option value="6","def">GH21</option> 
<option value="7","ghi">GH22</option> 
</select> 

因此當數據傳遞給下一個PHP腳本,當用戶選擇「GH20」時,我可以同時使用數據「5」和「abc」。我沒有在Google上看到這方面的情況,甚至不知道這是否可行。請讓我知道如果我要求不可能!非常感謝,尼克

回答

5

嘿,你不能有多個值一樣,因爲郵寄或得到的將只返回第一個值,在這種情況下,是5

<option value="5","abc">GH20</option> 

但你可以讓你的價值看起來像這樣

<option value="5,abc">GH20</option>

,然後在PHP腳本可以使用爆炸功能分隔值

explode(',', $_POST['model']) 將返回數組,您可以使用 array(0=> 5, 1=>abc)

0

它更好,如果你序列化你的數據,然後在下一個PHP腳本反序列化它。

$data=array($rs['id'], "abc"); //data to be stored 
$serialized_data=serialize($data); //serialize data 

$select.='<option value="'.$serialized_data.'">'.$rs['name'].'</option>'; 

重要

//unserialize information 
$unserialized_data=unserialize($serialized_data); 

這將輸出在同一個陣列array('SOMEID', "abc")

+0

說到矯枉過正..如果OP realy想要這個,那麼他應該使用'value =「id; textual_value」' – DarkBee 2014-11-22 18:32:52