Checkbox数组的未定义索引

时间:2017-04-30 04:38:13

标签: php html model-view-controller

我正在从表单向控制器发送一组复选框值。
当我尝试使用$ _Post访问它时,我没有任何价值。 所以我决定尝试使用var_dump()。结果是我在数组中看不到任何值。如果我检查3个复选框,我得到:

array(3) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" }

我不明白如何纠正此错误。

- 我的表格 -

<div class="container">
<div>
    <form class="form-horizontal" id="form" action="/MVC/home/languageChosen" method="post">
        <div class="form-group">
            <table>
                <tr>
                    <th>Language</th>
                    <th>Learn</th>
                    <th>Teach</th>
                </tr>
                <?php foreach ($data['languageData'] as $languageData): ?>
                    <tr>
                        <td><?php echo $languageData['language_name'] ?></td>
                        <td><input type="checkbox" name="learn[]" value="<?php $languageData['language_id'] ?>"></td>
                        <td><input type="checkbox" name="teach[]" value="<?php $languageData['language_id'] ?>"></td>
                    </tr>
                <?php endforeach ?>
            </table>
            <button id="continueButton" name="action" type="submit" class="btn btn-default" value="RegisterLanguage">Continue</button>
        </div>
    </form>
</div>

- 控制器 -

public function languageChosen()
{
    echo "You posted: " . implode(',', $_POST['learn']); // This results in: You posted: ,,
    var_dump($_POST['learn']);
    die();
}

修改

当我回显$ languageData [&#39; language_id&#39;]时,会生成下面的图片。

enter image description here

1 个答案:

答案 0 :(得分:3)

你没有获得价值,因为你没有回应它。

点击此处

                <tr>
                    <td><?php echo $languageData['language_name'] ?></td>
                    <td><input type="checkbox" name="learn[]" value="<?php $languageData['language_id'] ?>"></td>
                    <td><input type="checkbox" name="teach[]" value="<?php $languageData['language_id'] ?>"></td>
                </tr>

通过在$languageData

上添加echo来更改上述代码
                <tr>
                    <td><?php echo $languageData['language_name'] ?></td>
                    <td><input type="checkbox" name="learn[]" value="<?php echo $languageData['language_id'] ?>"></td>
                    <td><input type="checkbox" name="teach[]" value="<?php echo $languageData['language_id'] ?>"></td>
                </tr>

我希望这可以解决你的问题..干杯!