多选POST问题


multiple select POST issues

概述

我目前在PHP中遇到一个POST数据问题。我有两个多选框(一个在屏幕左侧,另一个在右侧(。

然后,我用数据库中的元素填充左侧的选项元素,用数据库中数据填充右侧的选项。但是,当我打印POST数据时,我放入右侧多选框中的元素不会被张贴(如预期的那样(。

代码

      <form method="post" action="http://">
        <div class="left">
          <label for="left">Attributes to select:</label>
          <select size="5" name="allAtts" id="toSelect" multiple=""> 
            <option value="jay">jay</option>
            <option value="bill">bill</option>
          </select>
          <p><a href="#" class="btn add">Add</a></p>
        </div>
        <div class="right">
          <label for="right">Attributes to store:</label>
          <select size="5" id="selectedAtts" name="selectedAtts[]" multiple="">
            <option value="bob">bob</option>
            <option value="jim">jim</option>
            <option value="frank">frank</option>
          </select>
          <p><a href="#" class="btn remove">Remove</a></p>
        </div>
        <input type="submit" name="submit" value="Visualise!">
      </form>

我的问题

我希望右侧多选框中的所有元素都被张贴,这样我就可以将它们存储到数据库中,这包括默认选项元素(由数据库放入的元素(。

进一步更新

注意:当我从左边选择一个项目(使用我的按钮和javascript(并将其移动到右边时,特定的数据(当表单提交时(就会被发布。我要那个数据,还要默认选项的右多选。

如果希望selectedAtts下拉列表中的每个选项都传递给$_POST数组,则需要实际选择它们。因此,将selected属性添加到每个选项中。

      <select size="5" id="selectedAtts" name="selectedAtts[]" multiple="">
        <option selected value="bob">bob</option>
        <option selected value="jim">jim</option>
        <option selected value="frank">frank</option>
      </select>

当然,没有什么(按照目前的代码(可以阻止用户取消选择任何或所有选项。。。

您可能希望将它们打印为隐藏的输入,然后将其用于您的工作,而不是在发布的数据中使用正确的多选框。不过,请记住,如果你按照我建议的方式实现,高级用户可能会更改你的数据。