试图循环通过html下拉

时间:2013-02-15 02:16:14

标签: php html

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

<?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>

2 个答案:

答案 0 :(得分:3)

仅使用表单数据提交所选项目。如果你想要所有可能的选择项,你需要将它们放在一个数组中,然后你可以使用该数组来填充/生成select字段,并在提交表单后以任何理由循环它们。

答案 1 :(得分:0)

您需要一种解决方法。

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

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

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

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

  5. 您可以始终匹配所选项目,首先循环campaigns并创建键值,然后使用php array_key_exists查看密钥是否存在,或in_array如果只是将所选项添加到数组中。