Checkbox勾选数据保存到数据库
Checkbox checked data save to database
问题:当一个checkbox被选中时对应的radnummer会在数据库的值来自 input(见下文)。但是没有任何反应。没有更新。选中复选框时,我想保存输入中的值。 (够混乱吗?)。 :)
问题:如何查看选中了哪些复选框?
请随意使用我下面的代码或任何选择的示例。
foreach ($_POST['K'] as $radnummer => $value) {
// Anything saved?
$finns_det_iup = $iup->finns_det_radnummer_iup($_GET['amne_id'], $radnummer, $_GET['elev_id']);
// Send to IUP
if (isset($_POST['IUP'][$radnummer])){
$amne_id = $_POST['amne_id'];
$eleven = $_GET['elev_id'];
// INSERT
if ($finns_det_iup == false){
try{
$iup_nytt_klick = $db->prepare("
INSERT INTO `iup_kunskapskrav_klick`
(amne_id, radnummer, elev_id, lid, kunsk_klick, datum)
VALUES (:amne_id, :radnummer, :elev_id, :lid, :kunsk_klicket, :datum)
");
$iup_nytt_klick->bindParam(':amne_id', $amne_id, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':radnummer', $radnummer, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':elev_id', $eleven, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':lid', $lid, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':kunsk_klicket', $value[0], PDO::PARAM_STR);
$iup_nytt_klick->bindParam(':datum', $datum, PDO::PARAM_STR);
$iup_nytt_klick->execute();
}catch(PDOException $e){
die($e->getMessage());
}
} else {
// UPDATE
$ny_lid = $_SESSION['lid'];
$eleven = $_GET['elev_id'];
$amne_id = $_POST['amne_id'];
try{
$iup_uppdatera_klick = $db->prepare("
UPDATE `iup_kunskapskrav_klick`
SET `kunsk_klick`=:kunsk_klicket,
`datum`=:datum,
`lid`=:lid
WHERE `amne_id`=:amne_id AND `elev_id`=:elev_id AND `radnummer`=:radnummer ");
$iup_uppdatera_klick->bindParam(':datum', $datum, PDO::PARAM_STR);
$iup_uppdatera_klick->bindParam(':lid', $ny_lid, PDO::PARAM_INT);
$iup_uppdatera_klick->bindParam(':kunsk_klicket', $value[0], PDO::PARAM_STR);
$iup_uppdatera_klick->bindParam(':amne_id', $amnet, PDO::PARAM_STR);
$iup_uppdatera_klick->bindParam(':elev_id', $eleven, PDO::PARAM_INT);
$iup_uppdatera_klick->bindParam(':radnummer', $radnummer, PDO::PARAM_INT);
$iup_uppdatera_klick->execute();
}catch(PDOException $e){
die($e->getMessage());
}
}
} // END 1
} // END 2
复选框
<td class="info" rowspan="5">
<input type="checkbox" name="IUP[<?php echo $kk['radnummer'];?>]" value="<?php echo $kk['radnummer'];?>"><i></i>
</td>
输入
<th>
<input class="abb_table_center" type="radio" value ="<?php echo $kk['kunskapstyp']; ?>" name="K[<?php echo $kk['radnummer'];?>][]" <?php if ($kk['kunskapstyp'] == $hamta_klicken['abb_klicket']) echo 'checked="checked" '; ?>><i class="rounded-x"></i>
</th>
就像 Ted 提到的那样,您可以使用此选择器获取所有选中的复选框 'input[type="checkbox"]:checked'。我还将数据附加到包含 radnummer 字段的复选框,以便您可以找到与该复选框相关的输入。这是一个例子:
<input type="checkbox" name="IUP[<?php echo $kk['radnummer'];?>]" data-radnummer="<?php echo $kk['radnummer'];?>" value="<?php echo $kk['radnummer'];?>"><i></i>
将数据附加到复选框后,您可以遍历可用的复选框并根据 radnummer
从输入中获取数据
$.each($('input[type="checkbox"]:checked'), function (i, key) {
var radnummer = $(key).data('radnummer');
//find input based on radnummer retrieved
textboxValue = $('#K[' + radnummer + '][]').val()
});
实际上复选框的 POST 是 "on" 你需要验证它是 "on" 还是属于,但是如果你需要这个值那么你需要使用 javascript AJAX.
问题:当一个checkbox被选中时对应的radnummer会在数据库的值来自 input(见下文)。但是没有任何反应。没有更新。选中复选框时,我想保存输入中的值。 (够混乱吗?)。 :)
问题:如何查看选中了哪些复选框?
请随意使用我下面的代码或任何选择的示例。
foreach ($_POST['K'] as $radnummer => $value) {
// Anything saved?
$finns_det_iup = $iup->finns_det_radnummer_iup($_GET['amne_id'], $radnummer, $_GET['elev_id']);
// Send to IUP
if (isset($_POST['IUP'][$radnummer])){
$amne_id = $_POST['amne_id'];
$eleven = $_GET['elev_id'];
// INSERT
if ($finns_det_iup == false){
try{
$iup_nytt_klick = $db->prepare("
INSERT INTO `iup_kunskapskrav_klick`
(amne_id, radnummer, elev_id, lid, kunsk_klick, datum)
VALUES (:amne_id, :radnummer, :elev_id, :lid, :kunsk_klicket, :datum)
");
$iup_nytt_klick->bindParam(':amne_id', $amne_id, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':radnummer', $radnummer, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':elev_id', $eleven, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':lid', $lid, PDO::PARAM_INT);
$iup_nytt_klick->bindParam(':kunsk_klicket', $value[0], PDO::PARAM_STR);
$iup_nytt_klick->bindParam(':datum', $datum, PDO::PARAM_STR);
$iup_nytt_klick->execute();
}catch(PDOException $e){
die($e->getMessage());
}
} else {
// UPDATE
$ny_lid = $_SESSION['lid'];
$eleven = $_GET['elev_id'];
$amne_id = $_POST['amne_id'];
try{
$iup_uppdatera_klick = $db->prepare("
UPDATE `iup_kunskapskrav_klick`
SET `kunsk_klick`=:kunsk_klicket,
`datum`=:datum,
`lid`=:lid
WHERE `amne_id`=:amne_id AND `elev_id`=:elev_id AND `radnummer`=:radnummer ");
$iup_uppdatera_klick->bindParam(':datum', $datum, PDO::PARAM_STR);
$iup_uppdatera_klick->bindParam(':lid', $ny_lid, PDO::PARAM_INT);
$iup_uppdatera_klick->bindParam(':kunsk_klicket', $value[0], PDO::PARAM_STR);
$iup_uppdatera_klick->bindParam(':amne_id', $amnet, PDO::PARAM_STR);
$iup_uppdatera_klick->bindParam(':elev_id', $eleven, PDO::PARAM_INT);
$iup_uppdatera_klick->bindParam(':radnummer', $radnummer, PDO::PARAM_INT);
$iup_uppdatera_klick->execute();
}catch(PDOException $e){
die($e->getMessage());
}
}
} // END 1
} // END 2
复选框
<td class="info" rowspan="5">
<input type="checkbox" name="IUP[<?php echo $kk['radnummer'];?>]" value="<?php echo $kk['radnummer'];?>"><i></i>
</td>
输入
<th>
<input class="abb_table_center" type="radio" value ="<?php echo $kk['kunskapstyp']; ?>" name="K[<?php echo $kk['radnummer'];?>][]" <?php if ($kk['kunskapstyp'] == $hamta_klicken['abb_klicket']) echo 'checked="checked" '; ?>><i class="rounded-x"></i>
</th>
就像 Ted 提到的那样,您可以使用此选择器获取所有选中的复选框 'input[type="checkbox"]:checked'。我还将数据附加到包含 radnummer 字段的复选框,以便您可以找到与该复选框相关的输入。这是一个例子:
<input type="checkbox" name="IUP[<?php echo $kk['radnummer'];?>]" data-radnummer="<?php echo $kk['radnummer'];?>" value="<?php echo $kk['radnummer'];?>"><i></i>
将数据附加到复选框后,您可以遍历可用的复选框并根据 radnummer
从输入中获取数据$.each($('input[type="checkbox"]:checked'), function (i, key) {
var radnummer = $(key).data('radnummer');
//find input based on radnummer retrieved
textboxValue = $('#K[' + radnummer + '][]').val()
});
实际上复选框的 POST 是 "on" 你需要验证它是 "on" 还是属于,但是如果你需要这个值那么你需要使用 javascript AJAX.