0

我有一个带有两个选择元素(列表框)和两个按钮的 HTML 表单,用于将数据从一个列表框移动到另一个列表框(使用 JavaScript):

 <form action="page.php" method="post">
        <select name="select1" multiple="yes">
            <option value="1">Left1</option>
            <option value="2">Left2</option>
            <option value="3">Left3</option>
        </select>
        <input type="button" value="--&gt;" onclick="moveOptions(this.form.select1, this.form.select2);" /><br />
        <input type="button" value="&lt;--" onclick="moveOptions(this.form.select2, this.form.select1);" />
        <select name="select2" multiple="yes">
            <option value="4">Right1</option>
            <option value="5">Right2</option>
        </select>
        <input type="submit" name="submit" value="Submit">
</form>

当我点击提交按钮时,我想获取存储在列表框中的所有值。

foreach ($_POST['select1'] as $value)
    {
        //save data to database
    }

这只会获得一个选定的值(如果有的话)。

我设法通过[]select.

<select name="select1[]" multiple="yes">

但这仍然没有得到未选择的值,这样数据移动 JavaScript 函数也不起作用。

4

3 回答 3

4

在提交表单之前,只需选择所有选项:

document.getElementsByName('submit')[0].onclick = function () {
    var s1 = document.getElementsByName('select1')[0];
    for(var i=0; i < s1.options.length; i++){
        s1.options[i].selected = true;
    }
};
于 2012-11-11T04:00:04.057 回答
1
var select1 = document.getElementById('select1');
var values = new Array();

for(var i=0; i < select1.options.length; i++){
    values.push(select1.options[i].value);
}

要在页面之间传递数组,请转到此处

于 2012-11-11T03:47:40.157 回答
1

我不确定您为什么要这样做,但您可以在提交表单之前调用此 Jquery 代码并将数组值添加到隐藏输入以进行发布

$("#Submit_button").click ( function() {
        var arr = new Array;
        $("#select1 option").each ( function() {
            arr.push ( $(this).val() );
        });
        $(#hidden_input).val(arr);
    });
于 2012-11-11T03:51:08.433 回答