【发布时间】: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 期望值是一个数组(或单个值)。
-
感谢您的回复,我已经通过发出警报进行了检查,对于选中的复选框,它在数组中给出了正确的值,但对于未选中的,它给出了整个复选框的值。我不知道为什么
-
谁能帮我解决这个问题..
标签: php jquery html mysql codeigniter