2014-11-22 5 views
1

Можно ли назначить несколько значений для выбора выпадающих списков параметров? Мне нужно получить несколько фрагментов данных из каждого раскрывающегося списка, когда они были выбраны, и мне удалось получить «имя» и «идентификатор». Имя отображается для выбора пользователем, однако это идентификатор, который передается для обработки. Вот мой код: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, я могу использовать как данные «5», так и «abc», когда пользователь выбирает «GH20». Я не очень много видел в Google об этом и даже не знаю, возможно ли это. Пожалуйста, дайте мне знать, если я прошу о невозможном! Many Thanks, Nick

ответ

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

Смежные вопросы