不能从多个选择列表中获取选定值以插入到其他选择列表中


Can't get selected values from a multiple select list to insert into other select list

我是一个javascript新手,所以请,任何帮助将不胜感激。我一直试图从我的页面上的下拉列表中获得选定的值,以便交换它们。我试着在网上寻找解决方案,但我被难住了。由于某种原因,s1[i]。Selected根本不起作用。下面是我的javascript代码:

<script type="text/javascript">
    function swaprows(s1, s2)
    {
        var items = "";
        var len = s1.length;
        for(i=0;i<len;i++)
        {
            if(s1[i].selected)
            {
            }
        }
    }       
</script>

的事情是我生成这些列表框在飞行使用php,他们没有硬编码到我的HTML。下面是我用来创建它们并调用javascript函数的代码:

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <ul>
    <?php
    do
    {
        echo "<li>";
        echo "<h2 class='"expand'" >Choose the sizes for " . $product_array['Product Name'] . "'n</h2>";
        echo "<div class='"collapse'">";
        echo "<table border='"0'">";
        echo "<tr>";
        echo "<td rowspan='"2'"><select size='"8'" multiple='"true'" name='"selectsizes[]'" id='"selectsizes'">'n";
        for($i=0; $i < sizeof($sizes_data); $i++)
        {
            echo "<option value=" . $sizes_data[$i]['Size ID'] . ">" . $sizes_data[$i]['Size Name'] . "</option>'n";
        }
        echo "</select></td>'n";
        echo "<td valign='"top'"><input type = '"button'" OnClick='"swaprows(this.form.selectsizes, this.form.selectedsizes);'" value='"-->'" /></td>";
        echo "<td rowspan='"2'"><select multiple='"true'" name='"selectedsizes[]'" id='"selectedsizes'">'n";
        echo "</select></td>'n";
        echo "<td rowspan='"2'" valign='"bottom'"><input type='"submit'" id='"btnSubmit'" name='"SaveSizes[" . $product_array['Product ID'] . "]'" value='"Save'" /></td>";
        echo "</tr><tr>";
        echo "<td valign='"top'"><input type = '"button'" OnClick='"swaprows(this.form.selectedsizes, this.form.selectsizes);'" value='"<--'" /></td>";         
        echo "</tr>";
        echo "</table>";
        echo "</li>";
    }while($product_array = mysql_fetch_assoc($product_result));    
    ?>
    </ul>
    </form>

因为我正在使用提交按钮进行post操作,所以我需要分别将列表命名为selectsizes[]和selectedsizes[],以便我可以通过post变量传递它们的选定值。有人能帮我一下吗?

我很确定你不需要javascript。只有字段名中的[]。然后在另一边,PHP将自动在所选字段的post变量中创建数组。

$sizes = $_POST['select_sizes'];
$quantity = sizeof($sizes);
$inc = 0;
while ($inc < $quantity) {
    echo "User selected:".$sizes[$inc];
    $inc++;
}

尝试一下如果(s1[我]。Selected == true)

var sPool = s1[i];
if(sPool.selected == true)