我目前在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)并将其移到右侧时,会发布该特定数据(提交表单时)。我想要那些数据,但也需要正确多次选择的默认选项。
答案 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)
您可能希望将它们打印为隐藏的输入,然后将其用于您的工作,而不是在发布的数据中使用正确的多选框。但请记住,如果您按照我建议的方式实施数据,那么高级用户可能会更改您的数据。