繁体   English   中英

无法从多个 select 列表中获取选定值以插入到其他 select 列表中

[英]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 function 的代码:

<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>

因为我正在使用提交按钮进行发布操作,所以我需要将我的列表分别命名为 selectsizes[] 和 selectedsizes[] 以便我可以通过 post 变量传递它们选择的值。 有谁可以帮我离开这里吗?

试试 if(s1[i].selected == true)

或者

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM