【问题标题】:How to pair the values of these two arrays in PHP?如何在 PHP 中配对这两个数组的值?
【发布时间】:2020-02-13 00:57:06
【问题描述】:

我有一个表格,上面有一些项目,每一行都有一个复选框和一个文本区域。当我预提交时,我只想为相应的选中复选框获取 textareas 的值,而不是那些未选中的复选框,即使它们有包含某些内容的 textareas。

                <form method="post">
                <?php if (!empty($arr_devices)) { ?>
                    <?php foreach ($arr_devices as $device) : ?>
                        <tr>
                            <td>
                                <input type="checkbox" name="devices[]" value="<?php echo $device["id"].$dev_comment ?>">
                            <td>
                           <td>  
<div class="input-group">
                                    <textarea name="dev_comment[]" placeholder="comment" rows="1" cols="50"><?php echo $dev_comment; ?></textarea>
                                </div>
                            </td>

                        </tr>
                    <?php endforeach; ?>
                <?php } ?>
                <input class="btn" type="submit" name="submit" value="Report">
                <form>

登顶后的打印数组:

  Device_id([0] => 790 [1] => 1140 [2] => 1142 ) 
  Comments( [0] => sdf [1] => sdfsdfs [2] => [3] => fsdfsd [4] => )

就像现在一样,当我提交时,我只能收到已检查的 device_id,但可以收到 cmets 的所有值(甚至是空值)。为什么会发生这种情况以及如何解决?

【问题讨论】:

  • 提交后去掉空值

标签: php html arrays


【解决方案1】:

只会提交选中的复选框。您可以通过将相同的键添加到它们的名称数组来保持复选框和 textarea 值配对。设备 ID 可能适用于此。

<td>
    <input type="checkbox" name="devices[<?php echo $device["id"] ?>]" value="<?php echo $device["id"].$dev_comment ?>">
<td>
    <div class="input-group">
        <textarea name="dev_comment[<?php echo $device["id"] ?>]" placeholder="comment" rows="1" cols="50"><?php echo $dev_comment; ?></textarea>
    </div>
</td>

如果设备 id 不是唯一的,您可以使用 foreach 循环中的索引。

然后在表单处理程序代码中,您可以使用复选框中的共享 id 来访问 cmets:

foreach ($_POST['devices'] as $id => $value) {
    // do something with $_POST['dev_comment'][$id]
}

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多