从选择框中获取多个值?

时间:2012-09-25 10:39:59

标签: php javascript select

我正在使用此脚本从互联网上的某处获取..

<html>
    <head>
        <title>Test</title>
        <script type="text/javascript">
        function sureTransfer(from, to, all) {
            if ( from.getElementsByTagName && to.appendChild ) {
                while ( getCount(from, !all) > 0 ) {
                    transfer(from, to, all);
                }
            }
        }

         function getCount(target, isSelected) {
            var options = target.getElementsByTagName("option");
            if ( !isSelected ) {
                return options.length;
            }
            var count = 0;
            for ( i = 0; i < options.length; i++ ) {
                if ( isSelected && options[i].selected ) {
                    count++;
                }
            }
            return count;
        }

        function transfer(from, to, all) {
            if ( from.getElementsByTagName && to.appendChild ) {
                var options = from.getElementsByTagName("option");
                for ( i = 0; i < options.length; i++ ) {
                    if ( all ) {
                        to.appendChild(options[i]);
                    } else {
                        if ( options[i].selected ) {
                            to.appendChild(options[i]);
                        }
                    }
                }
            }
        }

        window.onload = function() {
            document.getElementById("src2TargetAll").onclick = function() {
                sureTransfer(document.getElementById("source"), document.getElementById("target"), true);
            };
            document.getElementById("src2Target").onclick = function() {
                sureTransfer(document.getElementById("source"), document.getElementById("target"), false);
            };
            document.getElementById("target2SrcAll").onclick = function() {
                sureTransfer(document.getElementById("target"), document.getElementById("source"), true);
            };
            document.getElementById("target2Src").onclick = function() {
                sureTransfer(document.getElementById("target"), document.getElementById("source"), false);
            };
        }
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td>
                    <form name="formcheck" method="post" action="target.php">
                        <select id="source" name="source" multiple>
                            <option value="1">one</option>
                            <option value="2">two</option>
                            <option value="3">three</option>
                            <option value="4">four</option>
                            <option value="5">five</option>
                            <option value="6">six</option>
                            <option value="7">seven</option>
                            <option value="8">eight</option>
                            <option value="9">nine</option>
                            <option value="10">ten</option>
                        </select>
                    </td>
                    <td>
                        <input type="button" id="src2TargetAll" name="src2TargetAll" value=">>"/><br/>
                        <input type="button" id="src2Target" name="src2Target" value=">"/><br/>
                        <input type="button" id="target2Src" name="target2Src" value="<"/><br/>
                        <input type="button" id="target2SrcAll" name="target2SrcAll" value="<<"/><br/>
                    </td>
                    <td>
                        <select id="target" name="target" multiple>
                        </select>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>

此代码创建一个两个选择框,从左到右选择项目所有代码工作正常,但在PHP文件中我试图通过此PHP代码$targets = $_POST['target'];获取价值,但没有得到所有值,所以PLZ告诉我在php中获得这个价值的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

使用此

<select id='source' name='source[]' multiple='multiple'>

答案 1 :(得分:0)

为select元素指定一个以[]结尾的名称,以便PHP将其作为数组显示在$_POST/GET/REQUEST中。

答案 2 :(得分:0)

使用此

 <select id="source" name="source[]" multiple='multiple'>

它会在服务器端发布一个数组

相关问题