2

这里有一些这样的问题,但我想要做的是遍历每个选项元素并将它们回显出来,到目前为止,它只是回显所选项目,理想情况下我将遍历每个项目。

<?php
if (isset($_POST['submit'])) {
    $st_campaigns = $_POST['campaigns'];

    foreach ($st_campaigns as $st) {
        echo $st;
    }
}
?>

<form action="" method="post">
<select name="campaigns[]" id="campaigns[]" size="15" multiple="multiple"   style="width:150">
<option>item</option>
<option>item1</option>
<option>item</option>
<option>item</option>
<option>item</option>
<option>item</option>
<option>item</option>
</select>
<input type="submit" name="submit" />
</form>
4

2 回答 2

3

只有选定的项目与表单数据一起提交。如果您想要所有可能的选择项,您需要将它们放在一个数组中,然后您可以使用该数组来填充/生成选择字段,并在提交表单后出于任何原因循环它们。

于 2013-02-15T02:18:37.450 回答
0

您将需要一种解决方法。

  1. 在名为“options”的表单中添加一个隐藏字段(例如)

  2. 提交时,使用 Javascript 循环遍历项目并生成一个字符串。逗号分隔或 JSON 可能是更好的选择。因此,无论是否选择所有选项都将在字符串中。

  3. 将隐藏字段(选项)的值更改为 JSON 字符串

  4. 当表单提交时,使用 php 读取$_POST['options']而不是campaigns,将 JSON 更改为数组(或根据您的选择拆分 csv)并循环遍历它。

您始终可以通过首先循环campaigns并创建键值然后使用 phparray_key_exists查看键是否存在或者in_array您是否只是将所选项目添加到数组来匹配所选项目。

于 2013-02-15T02:52:44.800 回答