HTML Multi选择在添加值时提交中断

时间:2017-11-07 13:08:40

标签: javascript php jquery html

我发现了一些奇怪的东西,我有2个选择列。您可以使用jquery选择值并将其推送到第二个选择。当我提交并且我的第二个选择没有值时,这非常有效。

首选字段:

<select style="width: 100%;" name="extensions" id="extensions" multiple="multiple" size="10" class="" >
<?php
        $result=mysql_query("SELECT name from MyTable");
        while($row = mysql_fetch_array($result))
        {
           echo "<option value='$row[0]'>$row[0]</option>";
        }
?>
</select>

移动按钮:

<input class="" type="button" id="right" value=">">
<input class="" type="button" id="left" value="<">

第二个选择字段:

<select style="width: 100%;" name="queuemembers[]" id="queuemembers" multiple="multiple" class="" size="10">
</select>

我的Jquery代码:

$('#left').click(function () {
   $('#queuemembers option:selected').appendTo('#extensions');
});
$('#right').on('click', function () {
   $('#extensions option:selected').appendTo('#queuemembers');
});

当我提交表单时,我可以使用PHP从我的第二个选择中获取POST值。

print_r($_POST['queuemembers']);

返回

Array ( [0] => MyName [1] => SistersName ) 

完美我删除了我移动到此选择的所有值。

---------------------

这就是它破裂的地方:

首选字段:

<select style="width: 100%;" name="extensions" id="extensions" multiple="multiple" size="10" class="" >
<?php
        $result=mysql_query("SELECT name from MyTable");
        while($row = mysql_fetch_array($result))
        {
           echo "<option value='$row[0]'>$row[0]</option>";
        }
?>
</select>

移动按钮:

<input class="" type="button" id="right" value=">">
<input class="" type="button" id="left" value="<">

第二个选择字段:

<select style="width: 100%;" name="queuemembers[]" id="queuemembers" multiple="multiple" class="" size="10">
<?php
        $result=mysql_query("SELECT name from MyTable WHERE name = 'MyName'");
        while($row = mysql_fetch_array($result))
        {
           echo "<option value='$row[0]'>$row[0]</option>";
        }
?>
</select>

我在提交之前已经为第二个选择添加了一个值。

我的Jquery代码:

$('#left').click(function () {
   $('#queuemembers option:selected').appendTo('#extensions');
});
$('#right').on('click', function () {
   $('#extensions option:selected').appendTo('#queuemembers');
});

当我提交表单并使用PHP从我的第二个选择中获取POST值时,它不会返回使用while循环添加的值。它只显示从第一个选择列接收的值。

print_r($_POST['queuemembers']);

返回

Array ( [0] => SistersName ) 

我怀疑它可能与jquery代码有关,但不是100%肯定。

2 个答案:

答案 0 :(得分:0)

我发现了问题,我没有强制选择该选项

第二个选择字段:

<select style="width: 100%;" name="queuemembers[]" id="queuemembers" multiple="multiple" class="" size="10">
<?php
    $result=mysql_query("SELECT name from MyTable WHERE name = 'MyName'");
    while($row = mysql_fetch_array($result))
    {
       echo "<option value='$row[0]' selected>$row[0]</option>";
    }
?>
</select>

添加所选属性会修复它。

只需要找到让jquery这样做的方法,以避免使用取消选择值。

答案 1 :(得分:0)

我提交了jquery以强制选择值:

$('#submit').on('click', function () {
   $('#queuemembers option').prop('selected', true);
});