复选框值 id 未获取

checkbox value id not getting

我试图将我的复选框值 ID 存储到数据库,但我收到错误 count(): Parameter must be an array or an object that implements Countable in. 请任何人帮助我解决我的问题,这就是我正在尝试的

HTML:

$result = $stmt->get_result();
while ($rows = $result->fetch_assoc()) {    
<input type="checkbox" name="chk1[ ]" value="<?php echo $rows['AMOUNT'] .' - '. $rows['ID'] .' ';?>">&nbsp<?php echo $rows['DESCRIPTION'];?></input>

PHP:

<?php
if(isset($_POST['Save'])){
    
    $checkbox = $_POST['chk1'];
    $check = implode(", AND ", $checkbox);
    $value = explode(", AND ", $check);
    $AMOUNT = trim($value[0]);
    $FEE_ID = trim($value[1]);
    
for($i=0;$i<count($FEE_ID);$i++){
$stmt = $conn->prepare("INSERT INTO fee_checked (FEE_ID) VALUES (?)");
$stmt->bind_param("i",  $FEE_ID[$i]);
$stmt->execute();
}
}
?>

请提供任何帮助将不胜感激。提前致谢!

好的,在下面的一些评论之后,我现在正在看:

<?php
    if(isset($_POST['Save'])) {
        $check = implode(", AND ",$_POST['chk1']);
        $value = explode(", AND ", $check);
   for($i=0;$i<count($value);$i++) {
    print_r($value[$i]);
}
}
?>

当 print_r($value[$i]):

时看起来像这样

8000 - 9 3000 - 10 500 - 11

所以我想将 [ID] 的值 9,10,11 存储到 table。

在你的问题中使用你的更新代码:

<?php
if(isset($_POST['Save'])) {
  if(isset($_POST['chk1'])) {
    $value = $_POST['chk1'];
    for($i=0;$i<count($value);$i++) {
        $val = explode("-", $value[$i]);
        $AMOUNT = trim($val[0]);
        $FEE_ID = trim($val[1]);
        $stmt = $conn->prepare("INSERT INTO fee_checked (FEE_ID) VALUES (?)");
        $stmt->bind_param("i",  $FEE_ID);
        $stmt->execute();
    }
  }
}
?>

因为您正在获取 8000 - 9 3000 - 10 500 - 11 中的值。这些值将是 explode()- 以获取金额和 ID 的值。

编辑:更多,如果没有选中复选框,$_POST['chk1'] 将不存在。所以你也必须为它添加条件。