在数组中存储复选框值

时间:2014-02-11 14:18:41

标签: php arrays forms

我有一组3个复选框,要求用户输入。它们的构造如下:

<span class="playback-format-checkbox-holder">
    <span><b>Playback Format</span><br />
        <label for="dvd">
          <input type="checkbox" name="playback_format[]" value="dvd"  id="dvd" />
        DVD
        </label>
        <label for="bluray">
          <input type="checkbox" name="playback_format[]" value="bluray"  id="bluray" />
        Bluray
        </label>
        <label for="3d">
          <input type="checkbox" name="playback_format[]" value="3d" id="3d"  />
        3D
        </label>
</span>

我正在发布结果

<?php
   $new = array();

   $playback_formats = $_POST['playback_format'];

   if ( isset($playback_formats) ) {
     $new['playback_format'] = $playback_formats;           
   }
?>

如果我选择两个值,则只返回一个值。例如,如果我选择蓝光和3D,则阵列仅存储蓝光。如果我检查DVD和3d只存储DVD。因此,只有第一个选择存储在playback_format数组中。

我做错了什么?

如果我在每行中选中一个复选框,则返回正确的值。 playback_format []数组不作为数组存储。为什么呢?

如果我检查第一行中的两个框,并将第二行留空,则第一行获得第一行,第二行获得第二行。

我不知道发生了什么事。这似乎不应该是这么困难......


这是我在第一组复选框上检查DVD和Bluray,并将第二组复选框留空。

Array ( [0] => Array ( [0] => Array ( [select] =>
Testing Title #1

[url] =>
Description #1

[playback_format] => Array ( [0] => bluray ) ) [1] => Array ( [select] =>
Testing Title #2

[url] =>
Description #2

[playback_format] => Array ( [0] => dvd ) ) ) )
testing a new list

如您所见,它没有存储在正确的数组中。无论出于何种原因,第二个复选框值都存储在第二个数组中,而不是存储在第一行的playback_format数组中。

这让我发疯了。

1 个答案:

答案 0 :(得分:0)

你只是试着预测,我认为这会有更好的想法

foreach ($playback_format as $3d){}