php - 获取双列表框中的选定值 PHP

标签 php javascript mysql

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

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'];
}

最佳答案

这是奇怪的代码:

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 个来自“destination”的值被提交给 PHP。要允许提交多个值,请将 [] 添加到 <select>-s 的名称中。 :

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

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

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

关于php - 获取双列表框中的选定值 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739115/

相关文章:

c# - 无法导入 WSDL 服务 "targetNamespace ' urn :webservice' not found'

php - 我应该如何向长列表发送电子邮件? (PHP)

php - 从 mysql_num_rows 选择查询

php - MYSQL 连接两个具有相同字段值的表字段,但如果另一个字段与另一个字段不匹配,则仍将包含

php - SQLSTATE[42000] : Syntax error or access violation: 1065 Query was empty (SQL: )

javascript - 遍历对象的属性列出原型(prototype)中的东西

javascript - 如何将日期选择器的日历设置为始终可见,而且还能够获取所选日期?

javascript - 在页面导航上使用pace.js进度条

MySQL - 如何将 "Using join buffer (Block Nested Loop)"添加到查询中?

MySQL:空间查询以查找纬度/经度点是否位于给定边界内