1

我想从右侧列表框中输出选定的值。但是我没有成功获得选定值的值。js的提交函数返回错误。谁能告诉我为什么它会返回:

An object doesn't support this property 

在提交功能?我怎样才能得到值..我会使用 ajax 还是只在 PHP 中返回值?

 <form name="frmListSubmit" method="post" id="myform" onsubmit="return submit()">

<table cellpadding="2" cellspacing="0" border="0" id="tblMain" class="edit">
    <tr valign="top">
       <td>&nbsp;&nbsp;&nbsp;</td>
       <td>
        <SELECT id="s" size="10" name="source" multiple>
        <?php 
        while($row = mysql_fetch_assoc($getEmployeeList))
        {
        ?>
            <option name="list" value="<?php echo $row['id'];?>"><?php echo $row['name']; ?></option>
       <?php 
        }
       ?>

      </td>
      </SELECT>

      <td valign="center">
          <a href="#" onclick="listbox_moveacross('s', 'd')" style="color:#FFF">&gt;&gt;</a>
      <a href="#" onclick="listbox_moveacross('d', 's')" style="color:#FFF">&lt;&lt;</a>
      </td>
      <td>
      <SELECT id="d" size="10" name="destination" multiple>
          <option name="list" value="">&nbsp;</option>
      </SELECT>
    <input type="submit" name="submit" value="submit" />
     </td>
       </tr>
</table>

</form>

这是javascript代码:

function listbox_moveacross(sourceID,destID)
{
var src=document.getElementById(sourceID);
var dest=document.getElementById(destID);
for(var count=0;count<src.options.length;count++)
{
    if(src.options[count].selected==true)
    {
        var option=src.options[count];
        var newOption=document.createElement("option");
        newOption.value=option.value;
        newOption.text=option.text;
        newOption.selected=true;
        try
        {
            dest.add(newOption,null);src.remove(count,null);
        }
        catch(error)
        {
            dest.add(newOption);src.remove(count);
        }

        count--;
        }
    }
}

function listbox_selectall(listID,isSelect)
{
var listbox=document.getElementById(listID);
for(var count=0;count<listbox.options.length;count++)
{
    istbox.options[count].selected=isSelect;
}
}

function submit() 
{
    listbox_selectall('d', true);
    return true;
 }

我在 PHP 中有类似的东西,提交后它只返回一个 ID。

if(isset($_POST['submit']))
{
    echo $_POST['destination'];
}
4

1 回答 1

0

这是奇怪的代码:

function listbox_selectall(listID,isSelect)
{
    var listbox=document.getElementById(listID);
    for(var count=0;count<listbox.options.length;count++)
    {
        istbox.options[count].selected=isSelect;//<-- ?
    }
}

也许,你想说:

listbox.options[count].selected=isSelect;

您说,只有“目标”中的 1 个值提交给 PHP。要允许提交多个值,请将 [] 添加到 的名称中<select>-s

<SELECT id="s" size="10" name="source[]" multiple>

<SELECT id="d" size="10" name="destination[]" multiple>

此外,选项不需要使用name属性。你不会在任何地方使用它。

于 2013-07-19T06:07:30.030 回答