从动态生成的多个多列表框中获取值

时间:2011-12-08 04:15:09

标签: php javascript html forms

我有一个表单,可以在我的网页上动态添加带有表单字段的行。一行表单字段由文本框和多个选择列表组成。来自此处的教程来源:http://viralpatel.net/blogs/2009/03/dynamically-add-remove-rows-in-html-table-using-javascript.html

我的文本框的代码是:

<input type="textbox" name="name[]" id="name" size="20" maxlength="50" />

我的多选列表的代码是:

<select name="friend[]" multiple size="4" id="friend" style="width:150px" >
<option value="none" selected="selected">None</option>
<option value="sam">Sam</option>
<option value="jenny">Jenny</option>
<option value="bob">Bob</option>
<option value="aaron">Aaron</option>
</select>

我正在使用Javascript生成两个字段的多行,并且所有行共享相同的名称。我在获取不同行的名称方面没有问题,因为名称[0] =名称at第一行,名称[1] =第二行的名称,依此类推。但我无法分辨用户从每行的多个列表框中选择了多少。

如果用户从第一行中选择“无”,在第二行选择“Sam and Bob”并仅在第三行选择“Aaron”,则friend数组将显示线性结果,其中friend [0] = none ,朋友[1] =山姆,朋友[2] =鲍勃,朋友[3] =亚伦。

如何判断用户使用HTML或PHP或Javascript为每个多个列表框选择的值?

提前致谢!

1 个答案:

答案 0 :(得分:0)

枚举字段,然后按预期工作。

<select name="friend[1][]"
<select name="friend[2][]"
<select name="friend[3][]"


    var_dump($_POST);

    array(3) {
      ["name"]=>
      array(3) {
        [0]=>
        string(2) "aa"
        [1]=>
        string(2) "bb"
        [2]=>
        string(2) "cc"
      }
      ["friend"]=>
      array(3) {
        [1]=>
        array(1) {
          [0]=>
          string(4) "none"
        }
        [2]=>
        array(2) {
          [0]=>
          string(3) "sam"
          [1]=>
          string(3) "bob"
        }
        [3]=>
        array(1) {
          [0]=>
          string(5) "aaron"
        }
      }
      ["submit"]=>
      string(4) "send"
    }