【发布时间】:2014-02-11 14:18:40
【问题描述】:
我有一组 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;
}
?>
如果我选择两个值,则只返回一个。例如,如果我选择 Bluray 和 3d,则数组只存储 Bluray。如果我检查 dvd 和 3d,则只存储 dvd。所以只有第一个选择被存储在回放格式数组中。
我做错了什么?
如果我选中每一行中的一个复选框,它会返回正确的值。播放格式 [] 数组未存储为数组。为什么?
如果我选中第一行中的两个框,并将第二行留空,则第一行获得第一个选择,第二行获得第二个选择。
我不知道发生了什么。这似乎不应该这么难......
这是我在第一组复选框上选中 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
如您所见,它没有存储在正确的数组中。无论出于何种原因,第二个复选框值已存储在第二个数组中,而不是在第一行回放格式数组中。
这快把我逼疯了。
【问题讨论】:
-
你试过打印$new吗?检查 $new 中有哪些值。我已经按原样测试了上面的代码并且运行良好。
-
我有,我正在打印出变量,并将变量存储在随机位置。这些值不存储在每行的数组中。
-
你能显示你的输出吗?因为它在我身边工作得很好。
-
当然,请查看上方。我把它加到了底部。
-
这里还是什么都没有,呵呵。如此简单的问题,没有有效的解决方案。谁会想到这么简单的任务会变得如此困难。