如何使用codeigniter将选中和未选中复选框的值更新为表
Posted
技术标签:
【中文标题】如何使用codeigniter将选中和未选中复选框的值更新为表【英文标题】:How to update the value of checked and unchecked checkbox to table using codeigniter 【发布时间】:2020-07-21 15:06:53 【问题描述】:var add_dynastfileds = function()
CheckedFileds = [];
UncheckedFileds = [];
$(".DynFileds").each(function()
//console.log($(this).val());
if ($(this).is(":checked"))
if(CheckedFileds.indexOf($(this).val())==-1)
CheckedFileds.push($(this).val());
else
if(UncheckedFileds.indexOf($(this).val())==-1)
UncheckedFileds.push($(this).val());
);
$.post("<?=base_url()?>asset/addDynFields/",CheckedFileds:CheckedFileds,UncheckedFileds:UncheckedFileds,function(result)
//console.log(result);
$.gritter.add(
title: "Fields updated successfully ",
text: "",
time: 2000
);
);
<div class="panel-group">
<div class="panel panel-default">
<div class="row">
<?
foreach($dynast_fields as $dynfileds)
if(($dynfileds['display_name'] == 'Title') &&
($dynfileds['add_to_listing'] =='1'))
$styleClass = 'disabled="disabled"';
$checked = "checked";
else
$styleClass = '';
$checked = "";
?>
<div class="col-md-1"></div>
<input type="checkbox" <?=$styleClass?> <?=$styleClass?> class="DynFileds" name="dynfileds<?=$dynfileds['rec_no']?>" id="dynfileds<?=$dynfileds['rec_no']?>" value="<?=$dynfileds['rec_no']?>" <? if($dynfileds['add_to_listing'] == '1') echo "checked"; ?>/>
<span style="font-size:12px;font-family: Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;"><?=$dynfileds['display_name']?></span>
<br/>
<?php
?>
</div>
</div>
<span id='dup_checkdiv' style="display:none;" class="text-danger"></span>
<br/>
<div class="popover-footer" style="align:center;">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-3">
<a href="javascript:;" style="font-family: Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;" class="btn btn-info btn-sm" onclick="add_dynastfileds()">Save</a>
</div>
</div>
</div>
</div>
public function addDynFields()
$checkedfileds = $_POST['CheckedFileds'];
$uncheckedFileds = $_POST['UncheckedFileds'];
$this->db->update('pm1asset_dynamic_fields',array('add_to_listing' =>0));
if(!empty($checkedfileds))
for($i = 0; $i < count($checkedfileds); $i++)
$data = array(
'add_to_listing' =>1
);
$this->db->set($data);
$this->db->where('rec_no',$checkedfileds[$i]);
$this->db->update('pm1asset_dynamic_fields');
在这里,我编写了一些代码来更新选中和未选中复选框的值,这是第一次通过将值“0”上传到未选中并将值“1”上传到选中复选框,但在页面之后工作正常重新加载,如果我要通过取消选中先前选中的复选框来更新值“0”,它不会更新,因为刷新页面后,复选框值仍处于选中状态。出现这个问题是因为我在 div 标签的复选框中给出了条件,但我也需要这个条件。有没有什么不同的写法。哪位大神能告诉我怎么解决这个问题。
【问题讨论】:
你检查过post数据是否包含正确的id并且字段是一个数组吗? where_in 期望值是一个数组(或单个值)。 感谢您的回复,我已经通过发出警报进行了检查,对于选中的复选框,它在数组中给出了正确的值,但对于未选中的,它给出了整个复选框的值。我不知道为什么 谁能帮我解决这个问题.. 【参考方案1】:试试这样的
$('.DynFileds:checked').each(function()
CheckedFileds.push(this.value);
);
$('.DynFileds:not(:checked)').each(function()
UncheckedFileds.push(this.value);
);
更多
find all unchecked checkbox in jquery use jQuery to get values of selected checkboxes【讨论】:
谢谢您的回复先生,我仍然只得到以前的方法..以上是关于如何使用codeigniter将选中和未选中复选框的值更新为表的主要内容,如果未能解决你的问题,请参考以下文章