hosien
2 سال پیش توسط hosien مطرح شد
0 پاسخ

عدم ارسال مقدار چک باکس مورد نظر در php با ajax

سلام وقت بخیر دوستان . من یک جدول دارم همونطور که در عکس هم مشخص هست میخوام وقتی روی مثلا گزینه "مدیرکل" کلیک شد مقدارش که مربوط به شخص مورد نظر مثلا ردیف "1" ارسال بشه ولی در صورتی که تمام گزینه هایی که چک باکس انها تیک خورده همه ارسال میشوند.
دوستان مشکل بنظرتون کجاست؟
 تصویر

کدهای مربوط به html و ajax :

<?php foreach ($records as $record){ ?>
                <tr>
                    <td><?= $i++ ?></td>    
                    <td><?= $record['namefamily']?></td>                   
                    <td><?php getAccessName($record); ?></td>

                <input type="hidden" name="accessUser" value="<?=$record['id']?>">
                    <td>
                    <lable style="display: inline-flex;"><input onclick="setAccess(this, <?=$record['id']?>)" name="superadmin"  class="getAccessUser"  value="superadmin"  style="margin-left: 3px;"   type="checkbox"  <?php if(str_contains($record['access'] , '|superadmin|')){ echo 'checked'; } ?> >مدیرکل</lable>&nbsp;
                    <lable style="display: inline-flex;"><input onclick="setAccess(this, <?=$record['id']?>)" name="admin" class="getAccessUser"  value="admin"  style="margin-left: 3px;"  type="checkbox"  <?php if(str_contains($record['access'] , '|admin|')){ echo 'checked'; } ?> >مدیر</lable>&nbsp;
                    <lable style="display: inline-flex;"><input onclick="setAccess(this, <?=$record['id']?>)" name="owner" class="getAccessUser"  value="owner" style="margin-left: 3px;"   type="checkbox"  <?php if(str_contains($record['access'] , '|owner|')){ echo 'checked'; } ?> >مالک</lable>&nbsp;        
                   </td>  
                </tr>
                 <?php } ?>

            </tbody>
        </table>
    </div>
</div>
<div>
    <button class="btn btn-primary" name="sendAccess"  type="button" id="accessid" style="margin-right: 10px;">ثبت تغییرات</button>
</div>

<script>
   function setAccess(sender , id){
       sender = $(sender);
//       alert (sender);
//       console.log(sender);
       var access = [];

       $('.getAccessUser').each(function(){
           if($(this).is(":checked")){
               access.push($(this).val());
//                 access = sender.push($(this).val());

           } 
        });
        access = access.toString();
        $.ajax('<?= baseUrl() ?>/admin/accessUpdate/' + id , {
           type: 'post',
           data:{access:access},
           success: function(data){
//               alert('ok1111');
console.log('okey');
           }
        });
   }
</script>    

کدهای مربوط به php:

public function accessUpdate($id){ 

      if(!isset($_SESSION['mobile'])){
            header('Location:' . baseUrl() . '/user/login');
            exit();
        }

         if(!grantSuperAdmin()){
            exit();
        }

        if(isset($_POST['access'])){
            $setAccess = $_POST['access'];
            echo $setAccess;
            AdminModel::set_access($id,$setAccess);
        }  
//        echo json_encode(array('status'=>true));
//        header('Location: '.baseUrl().'/admin/fetchAccessUser');
    }

کد مربوط به دیتابیس :

 public static function set_access($idAccess,$setAccess){
       $db = Db::getInstance();
       $db->modify("UPDATE `x_users` SET `access` =:access WHERE `id` =:id " , array(
           'id' => $idAccess,
           'access' =>$setAccess,

       ));
   }

ثبت پرسش جدید

به همدیگه کمک کنیم

به hosien کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام