我有一個表格,上面有一些項目,每行都有一個復選框和一個文本區域。當我預先提交時,我想只為相應的選中復選框獲取文本區域的值,而不是為未選中的文本區域取值,即使它們具有某些內容的文本區域也是如此。 <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,而是評論的所有值(甚至是空值)。為什么會發生這種情況以及如何解決它?
1 回答

眼眸繁星
TA貢獻1873條經驗 獲得超9個贊
僅提交選中的復選框。您可以通過向復選框和文本區域值的名稱數組添加相同的鍵來保持其配對。設備 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來訪問注釋:
foreach ($_POST['devices'] as $id => $value) {
// do something with $_POST['dev_comment'][$id]
}
- 1 回答
- 0 關注
- 128 瀏覽
添加回答
舉報
0/150
提交
取消