duanji1924 2017-04-30 04:38
浏览 51
已采纳

Checkbox数组的未定义索引

I am sending an array of checkbox values from a Form to my controller.
I get no value when I try to access them using $_Post. So I decided to try using var_dump(). The result is that I see no value inside my array. If i check 3 checkboxes I get:

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

I don't understand how to correct this error.

-- My form --

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

-- Controller --

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

EDIT

When I echo $languageData['language_id'], it results in the image below.

enter image description here

  • 写回答

1条回答 默认 最新

  • dtjwov4984 2017-04-30 05:34
    关注

    You are not getting values because you didn't echo it out.

    Check here

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

    Change the above code as like this by adding echo on $languageData

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

    and i hope this solve your problem.. Cheers !

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵