我是一个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>
因为我正在使用提交按钮进行后期操作,所以我需要将我的列表分别命名为choicesizes []和selectedsizes [],以便我可以通过post变量传递他们选择的值。任何人都可以帮助我吗?
答案 0 :(得分:0)
尝试 if(s1 [i] .selected == true)
或
var sPool = s1[i];
if(sPool.selected == true)
答案 1 :(得分:0)
我很确定你不需要这个javascript ..只是字段名称中的[]。然后另一方面,php将自动在所选字段的post变量中生成数组。
$sizes = $_POST['select_sizes'];
$quantity = sizeof($sizes);
$inc = 0;
while ($inc < $quantity) {
echo "User selected:".$sizes[$inc];
$inc++;
}