Как обновить значение отмеченного и не отмеченного флажка в таблице, используя codeigniter - PullRequest
0 голосов
/ 09 апреля 2020
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, но мне нужно это условие также. Есть ли способ написать это по-другому. Как решить эту проблему может кто-нибудь, пожалуйста, скажите мне.

1 Ответ

0 голосов
/ 10 апреля 2020

Попробуйте что-то вроде этого

$('.DynFileds:checked').each(function() {
   CheckedFileds.push(this.value);
});
$('.DynFileds:not(:checked)').each(function() {
   UncheckedFileds.push(this.value);
});

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...