2012-02-25 7 views
0

私は数日間このことをやってきましたが、これを行う正しい方法を見つけることができません。ユーザーがチェックボックスのチェックを外すと、チェックボックスのIDを送信してテーブルに削除する必要があります。セレクタではありません(正しく動作しているかどうか不明)

// 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> 
+0

チェックボックスの内容は不明です。一方では、それらはトグル状態のコントロールであるように見えますが、他方では、それらはサーバー側の状態の指標に見えます。 –

+0

YEです。確かに私が持っていた問題は、.not(:checked)セレクタを使用したときです。それは常にチェックされていないことを指しています... –

答えて

1

あなたが交互に持っているが、ユーザデータに基づく属性を「確認しました」。基本的には、次のようになります。

<input type="checkbox" name="read2" <?php if ($is_readable) { echo 'checked'; } ?> > 
関連する問題