Не селектор (не уверен, правильно ли я делаю) - PullRequest
0 голосов
/ 25 февраля 2012

Я занимаюсь этим пару дней и не могу найти правильный способ сделать это. То, что я хотел, когда пользователь снимает флажок, он должен отправить идентификатор флажка, а затем удалить его в таблицу.

// JS

<script>
$(document).ready(function(){
    $('#list-tbl tr').each(function(){
        var $this = $(this);
        var ID = $(this).attr("id").replace("tr","");
        var user_id = $('#user_id').val();
        var read = $('#read'+ID).val();
        var add = $('#add'+ID).val();
        var approve = $('#approve'+ID).val();

        $('input[type=checkbox]', $this).change(function(){
            if($('.read'+ID, $this).is(':checked')){
                $('input[type=checkbox]', $this).prop('disabled',true);
                 $.ajax({
                    type: "POST",
                    url: "<?= base_url('admin/update/read')?>",
                    data: "read="+ read + "&user_id=" + user_id,
                    success: function(){
                        $('form#submit').hide();
                            alert("Permission added");
                        $('div.success').fadeIn();   
                    }
                });
                $(this).prop('disabled',false);
            } else if($('.add'+ID, $this).is(':unchecked')) {
                $('.read', $this).prop('disabled', true);
                $.ajax({
                   alert("FU");  
                    }
                });
                $(this).prop('disabled', false);
            } else if($('.add'+ID, $this).is(':checked')) {
                $('.read', $this).prop('disabled', true);
                $.ajax({
                    type: "POST",
                    url: "<?= base_url('admin/update/add')?>",
                    data: "add="+ add + "&user_id=" + user_id,
                    success: function(){
                        $('form#submit').hide();
                            alert("Permission add added");
                        $('div.success').fadeIn();   
                    }
                });
                $(this).prop('disabled', false);
            } else if($('.approve'+ID, $this).is(':checked')) {
                $('.read', $this).prop('disabled', true);
                $.ajax({
                    type: "POST",
                    url: "<?= base_url('admin/update/approve')?>",
                    data: "approve="+ approve + "&user_id=" + user_id,
                    success: function(){
                        $('form#submit').hide();
                            alert("Permission approve added");
                        $('div.success').fadeIn();   
                    }
                });
                $(this).prop('disabled', false);
            }
            else{
                $('input[type=checkbox]', $this).prop('disabled',false);
                $(this).prop('disabled',false);
            }
        });
    });
});

А также я хотел установить флажки в том виде, в каком они должны быть. Правила:

Когда у пользователя есть разрешение на чтение (добавление и утверждение должно быть отключено). Когда пользователь добавил / одобрил (должно быть отключено только чтение).

В моем скрипте jQuery это уже работает, но если запущена перезагрузка, это не так.

HTML:

<table width="100%" id="list-tbl"><form id="permissions2"><tr id="tr2"><td>Sia Olsen</td><td align="right"><input type="hidden" name="user_id" id="user_id" value="2" />Read&nbsp;&nbsp;&nbsp;<input type="checkbox" name="read2" id="read2" class="read2" checked />Add&nbsp;&nbsp;&nbsp;<input type="checkbox" name="add2" id="add2" class="add2" checked />Approve&nbsp;&nbsp;&nbsp;<input type="checkbox" name="approve2" id="approve2" class="approve2" checked /></td></tr></form><form id="permissions3"><tr id="tr3"><td>Mary Lee</td><td align="right"><input type="hidden" name="user_id" id="user_id" value="3" />Read&nbsp;&nbsp;&nbsp;<input type="checkbox" name="read3" id="read3" class="read3" checked />Add&nbsp;&nbsp;&nbsp;<input type="checkbox" name="add3" id="add3" class="add3"  />Approve&nbsp;&nbsp;&nbsp;<input type="checkbox" name="approve3" id="approve3" class="approve3"  /></td></tr></form></table>
</div></div> 

1 Ответ

1 голос
/ 25 февраля 2012

Вы должны чередовать «проверенные» атрибуты на основе пользовательских данных.По сути, это должно быть что-то вроде:

<input type="checkbox" name="read2" <?php if ($is_readable) { echo 'checked'; } ?> >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...