2012-02-09 72 views
1

我已经创建了一个具有下拉列表的html表单。如何从一个下拉在PHP中获取值和ID?

该下拉列表从数据库填充。

<select name="classes"> 
<?php 
foreach() { 
?> 
<option value="<?php echo $id ?>"><?php echo $name ?></option> 
<?php 
} 
?> 
</select> 

现在我想获得$ id和$ name两个。我将如何做到这一点?

我已经试过这

echo $_POST['classes']; 

但它只显示选择项目的$ ID。我想要$ id和$两个名字。

+0

只的标识选定的选项将被发送。关键在于ID用作名称的别名,因此知道ID应该足以让您知道名称。 – xbonez 2012-02-09 06:38:55

+1

我你需要两个,你必须使用JavaScript来改变发布请求。 – JRL 2012-02-09 06:42:08

+0

但我需要两者。如何获得身份证和姓名?在PHP中可能吗? – Ahmad 2012-02-09 06:43:51

回答

4

你不能爆炸的名字。一种可能性是将两者的相关信息的value属性里面,然后将它们与PHP再次分离(通过使用一个分隔符):

<option value="<?php echo $id.'|'.$name; ?>"><?php echo $name ?></option> 

在PHP:

$datas = explode('|',$_POST['classes']); 
$id = $datas[0]; 
$name = $datas[1]; 

但是,这不是系统如何是为了。通常$ name只会被用作用户的“友好”信息,因为这个值有时可能只是一个INT,而用户不会理解这个int所指的是什么,所以我们给他一个词的描述以便选择一个选项:但是你只关心的是这个值,你可以随时用它来重新获得与它一起的描述(通过搜索数据库,例如)

0

发送表单意味着只为选择字段发送'值'(在选项中仅将'name'作为标签)。如果在处理表单提交时有'id',您可以简单地从数据库中获取'名称'。

1

追加名称标识,并把它作为价值,,并从另一端

1

就我而言知道,当你提交表格时,只有价值会被结转。如果没有值,则内部HTML将成为值。

我会做的是:

<select name="classes"> 
<?php 
foreach($classes as $id => $name) //i'm guessing here, is this what you meant? 
{ ?> 
<option value="<?php echo $id.'|'.$name ?>"><?php echo $name ?></option> 
<?php } ?> 
</select> 

如果你不熟悉,周期是连接运算符。把它看作是一串字符串的胶水。因此,我将$ id粘贴到“pipe”的左侧,然后将$ name粘贴到最后。 然后在您的处理程序中,使用split或explode来分隔管道上的两个值。

其实,我会做一点不同,回声更多,进出php/html更少,但我试图尽可能保持完整的代码。

+0

我太慢了。其他人发布与我一样的答案。 :-) – TecBrat 2012-02-09 06:50:56

1

你想要的是和名称都如此,而存储选项值, 把这样

<option value="<?php echo $id."_".$name;?>"><?php echo $name?></option> 

和发布数据只是爆炸,你会得到双方的价值和名字