多个选择POST问题

时间:2013-03-02 18:39:31

标签: php post

概述

我目前在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>

我的问题

我希望右侧多个选择框中的所有元素都发布到POSTED,这样我就可以将它们存储到数据库中,这包括默认选项元素(数据库放入的元素)。

进一步更新

注意:当我从左侧选择一个项目(使用我的按钮和javascript)并将其移到右侧时,会发布该特定数据(提交表单时)。我想要那些数据,但也需要正确多次选择的默认选项。

2 个答案:

答案 0 :(得分:1)

如果您希望将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>

当然,没有(正如代码当前所示)是阻止用户取消选择任何或所有选项......

答案 1 :(得分:0)

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