如果在 jquery 和 codeigniter 中检查和取消选中复选框的其他条件
Posted
技术标签:
【中文标题】如果在 jquery 和 codeigniter 中检查和取消选中复选框的其他条件【英文标题】:If else condition for check and uncheck checkbox in jquery and codeigniter 【发布时间】:2019-12-12 15:39:01 【问题描述】:i 有一些过滤器应用于产品。它有一个部分,我通过单击复选框来过滤产品。我为此使用 jquery。问题是当我尝试取消选中复选框时,它显示的结果与以前相同,即使我取消选中它仍然显示已选中。如果未选中复选框,我想重置页面。
查看上面的图片,我正在使用复选框来过滤产品,如果我点击任何复选框,它会显示一些结果,现在我想取消选中复选框并休息页面。但是如果我尝试取消选中它,它仍然显示为已选中
查看代码:
<form action="" method="get">
<?php
foreach ($tags as $tag)
?>
<div class="checkbox">
<label><input type="checkbox" value="<?= $tag->id ?>" name="tags[]" class="tags" <?= (isset($current_tags) && in_array($tag->id, $current_tags)) ? 'checked="checked"' : '' ?>><?= $tag->tag_name ?></label>
</div>
<?php
?>
jquery 代码:
$('.tags').change(function ()
var current = $(this);
var tags = [];
$('.tags').each(function ()
if ($(this).prop('checked') == true)
tags.push($(this).val());
else
resetAll();
);
window.location = '<?= current_url() . '?' . (($this->input->get_post('s')) ? 's=' . $this->input->get_post('s') . '&' : '') ?>tags=' + tags.join('-');
);
);
控制器代码:
if ($this->input->get_post('tags'))
$this->data['current_tags'] = explode('-', $this->input->get_post('tags'));
$filters['deals.tags'] = $this->data['current_tags'];
$_SESSION['filters_counter'] += 1;
型号代码:
function get($filters = [], $sort_filters = [], $limit = 0, $offset = 0, $sort_filters_mobile = [])
$this->db->select('deals.*,deals.expiry_date_time,categories.category_name,categories.seo_url as category_seo_url,sub_categories.sub_category_name,sub_categories.seo_url as sub_category_seo_url,stores.store_name,stores.is_direct_link');
$this->db->from('deals');
$this->db->join('categories', 'categories.id=deals.categories_id');
$this->db->join('sub_categories', 'sub_categories.id=deals.sub_categories_id');
$this->db->join('stores', 'stores.id=deals.stores_id');
$this->db->where("deals.status", 1);
$this->db->where("stores.current_status", 'Active');
foreach ($filters as $key => $value)
if (is_array($value))
if ($key == 'deals.tags')
$cond = array();
foreach ($value as $key => $val)
$cond[] = 'FIND_IN_SET("' . $val . '",deals.tags) != 0';
$this->db->where('(' . implode(' OR ', $cond) . ')');
else
$key_array = explode(' ', $key);
if (isset($key_array[1]) && ($key_array[1] == "!="))
$this->db->where_not_in($key_array[0], $value);
else
$this->db->where_in($key, $value);
elseif ($key == 'deals.deal_title')
$this->db->like($key, $value);
elseif ($key == 'deals.tags')
$this->db->where('FIND_IN_SET("' . $value . '",deals.tags) !=', 0);
else
$this->db->where($key, $value);
foreach ($sort_filters as $key => $value)
$this->db->order_by($key, $value);
if ($limit != 0)
if ($offset != 0)
$this->db->limit($limit, $offset);
else
$this->db->limit($limit);
$data = $this->db->get()->result();
if ($data)
foreach ($data as $item)
if ($item->current_status == 'Active')
$item->current_status_bootstrap_class = 'primary';
else
$item->current_status_bootstrap_class = 'danger';
if ($item->deal_type == 'DEAL')
$item->deal_type_bootstrap_class = 'primary';
$item->deal_type_text = 'Deal';
else
$item->deal_type_bootstrap_class = 'success';
$item->deal_type_text = 'Offer & Coupon';
$item->image = FILE_UPLOADED_PATH . $item->image;
return $data;
return [];
我已尝试添加 else 条件,但它不起作用。请帮助!
【问题讨论】:
看不懂你想说什么。请详细解释一下。 @Thameem 我正在使用 mysql codeigniter 动态获取复选框值 【参考方案1】:听不懂你想说什么。但我希望你必须从中得到一些想法
$('.tags').change(function ()
var current = $(this);
if($(current).prop('checked') == true)
alert("checked");
else
alert("UN-checked");
//You should reset your page here or whatever u mean
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" value="1" name="tags[]" class="tags" />
<input type="checkbox" value="2" name="tags[]" class="tags" />
<input type="checkbox" value="3" name="tags[]" class="tags" />
<input type="checkbox" value="4" name="tags[]" class="tags" />
<input type="checkbox" value="5" name="tags[]" class="tags" />
【讨论】:
谢谢! .我尝试添加 else 但条件直接转到 else 而不执行 if以上是关于如果在 jquery 和 codeigniter 中检查和取消选中复选框的其他条件的主要内容,如果未能解决你的问题,请参考以下文章
在 codeigniter 中使用 jquery ajax 进行表单验证
使用 codeigniter 和 jquery 进行 AJAX 分页
CodeIgniter 和 Javascript/Jquery 库