在表单中捕获optgroup标签

时间:2013-08-16 16:47:57

标签: php html

我的HTML:

    <select name="field" required="true">
  <option value="">Choose ITEM</option>
    <optgroup label="ITEMGROUP 1">
      <option value="item1">item1</option>
      <option value="item2">item2</option>
      <option value="item3">item3</option>
      <option value="item4">item4</option>
      <option value="item5">item5</option>
      <option value="item6">item6</option>
      <option value="item7">item7</option>
    </optgroup>
   </select>

现在我想获取所选项目的值:

$item = $_POST['field'];

如果我想获取optgroup标签,该怎么办? 谢谢!

2 个答案:

答案 0 :(得分:4)

optgroups仅用于客户端演示。

但是,如果你有一个LOGIC来生成组,你也应该能够使用相同的逻辑再次将Value转换为适当的组,但是相反。

编辑:您也可以将该组作为值的前缀传递。

类似

     <select name="field" required="true">
  <option value="">Choose ITEM</option>
    <optgroup label="ITEMGROUP 1">
      <option value="ITEMGROUP 1;item1">item1</option>
      <option value="ITEMGROUP 1;item2">item2</option>
      <option value="ITEMGROUP 1;item3">item3</option>
      <option value="ITEMGROUP 1;item4">item4</option>
      <option value="ITEMGROUP 1;item5">item5</option>
      <option value="ITEMGROUP 1;item6">item6</option>
      <option value="ITEMGROUP 1;item7">item7</option>
    </optgroup>
   </select>

然后使用简单的explode()语句来获取组信息。

答案 1 :(得分:0)

我试图做同样的事情,但是事情变得复杂,所以我选择了不同的解决方案:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<form>
  <input id="hidden" name="hidden" type="hidden" value=""/>
  <select id="field" name="field" required="true">
    <option value="">Choose ITEM</option>
    <optgroup label="ITEMGROUP 1">
      <option value="item1">item1</option>
      <option value="item2">item2</option>
      <option value="item3">item3</option>
      <option value="item4">item4</option>
      <option value="item5">item5</option>
      <option value="item6">item6</option>
      <option value="item7">item7</option>
    </optgroup>
   </select>
</form>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script>
$(document).ready(function(){
  $("#field").change(function(){
    var s = $(this).find(":selected").closest("optgroup");
    $("#hidden").val($(s).attr("label"));
    alert($(s).attr("label"));
  })
});
</script>
</body>
</html>