如何通过选择发送两个值?

时间:2011-07-13 02:18:09

标签: php mysql sql

我想通过选项标签发送名称和ID字段。现在,因为它设置了它只发送id,如何发送名称以将其插入数据库?

<select name="category_id" size="1"><br />';

$sql = "SELECT id, name 
          FROM categories 
      ORDER BY name";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs)) {
  echo "<option value=\"".$row['id']."\">".$row['name']."</option>\n  ";
}

echo'
</select>

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要一个隐藏的<input>字段和一些用于编写<option>文字的JavaScript。

但是,我不能想到单个应用程序需要的地方......数据库规范化的目的是避免重复。

答案 1 :(得分:1)

使选项值具有以下格式:name$id

<select name="category_id" size="1"><br />';

    $sql = "SELECT id, name 
              FROM categories 
          ORDER BY name";

    $rs = mysql_query($sql);

    while($row = mysql_fetch_array($rs)) {
      echo "<option value=\"".$row['name']."$".$row['id']."\">".$row['name']."</option>\n  ";
    }

    echo'
</select>

然后当您检索数据时,您可以将其分解为

$option = explode("$", $_POST['category_id']);
echo $option[0]; // Name
echo $option[1]; // Id