【问题标题】:How to post the selections of an HTML List Box with multiple selected values如何发布具有多个选定值的 HTML 列表框的选择
【发布时间】:2008-12-18 21:49:17
【问题描述】:

我在 HTML 表单上有一个带有提交按钮的列表框。列表框启用了多项选择。我可以在列表框中选择多个值,但我不知道如何确定提交表单时选择了哪些值。另外,我正在使用 JavaScript 将用户生成的值动态添加到列表框中,并且我希望能够在表单提交时告诉两件事:

  1. 用户在框中添加了哪些选项?
  2. 用户在框中选择了哪些值?

这可能吗?谢谢。

【问题讨论】:

  • 有可能...但是您使用的是什么服务器端语言?因为这似乎是你的大部分问题是关于..

标签: html html-select


【解决方案1】:

通过使用尾部方括号命名select,PHP(以及可能的其他服务器语言)会将数据放入数组中

例如:

<form action="process.php" method="post">
  <select name="multiSelects[]" multiple="multiple" size="5">
    <option value="0">Zero</option>
    <option value="1">One</option>
  </select>
  <input type="submit" />
</form>

选择将在数组$_POST['multiSelects']中可用

【讨论】:

  • @Ejay:这应该适用于任何符合标准且值得编码的服务器端语言,
【解决方案2】:

您可以在下面找到一个页面示例。

请注意:

  • 选择元素(和任何表单元素)需要一个名称才能包含在帖子中。
  • 只会发布选择元素中的选定选项。

用户在框中选择了哪些值?

当用户提交表单时,只有选定的值会被发送到服务器。根据您在服务器上使用的语言,有不同的方法可以访问它们。

用户在框中添加了哪些选项?

如前所述,您只能看到选择了哪些选项。但是您如何区分您的选项和用户选项?这取决于您向用户发送的数据。普遍的答案是,这就是你没有发送的价值。但是,这可以根据您的数据进行简化。由于选项同时具有值​​和文本属性,因此它是使用数值作为预生成值的一种方法。这样,您的值在回复中将是数字,而用户值将是文本字符串。这种方法假定您的用户不会只输入数字值。另一种方法是为所有用户生成的值添加前缀(请记住,所有选项都有一个值和一个文本字段)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test of select box</title>
    <script type="text/javascript">
      function addOpt(e) {
        var o=document.createElement("option");
        //o.value= -e.options.length;
        o.text = "Test " + e.options.length;
        o.selected=true;
        e.add(o,null);
      }
    </script>
  </head>
  <body>
    <form method="post" action="mypage.html">
      <input type="button" onclick="addOpt(this.form.myselect)" value="Add option"/>
      <br/>
      <select id="myselect" name="mydata" multiple="multiple" size="10">
        <option value="0">Test 0</option>
        <option value="1">Test 1</option>
        <option value="2">Test 2</option>
      </select>
      <br/>
      <input type="submit"/>
    </form>
  </body>
</html>

【讨论】:

  • @aleemb:添加 [] 如何回答“用户在框中添加了哪些选项”和“用户在框中选择了哪些值”?如果您实际查看上面的 javascript,它只会向选择框添加选项,证明文本将用作值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多