复选框值 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'] .' ';?>"> <?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']
将不存在。所以你也必须为它添加条件。
我试图将我的复选框值 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'] .' ';?>"> <?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']
将不存在。所以你也必须为它添加条件。