我发现了一些奇怪的东西,我有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%肯定。
答案 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);
});