首页 > 解决方案 > 使用按钮实时将活动更改为非活动

问题描述

我正在使用 PHP CodeIgniter 框架将 DataTables 与 ajax 一起使用。我在将活动按钮切换到非活动按钮时遇到问题,反之亦然。

我想要的是:

当我单击“活动”按钮时,它应该实时更改为“不活动”而不刷新页面。

控制器:

function activateStatus() {
    $id = $this->uri->segment(3);
    $data = array(
        'status' => 1
    );
    $this->equip_model->updateAccount('equip', $data, array('id' =>$id));             
}

function deactivateStatus() {
    $id = $this->uri->segment(3);
    $data = array(
        'status' => 0
    );
    $this->equip_model->updateAccount('equip', $data, array('id' =>$id));             
}

看法:

<table class="table table table-hover table-bordered" id="equipmain">
    <thead>
        <tr>
          <th>ID</th>
          <th>Status</th>
        </tr>
    </thead>
    <tbody>
    <?php 
       foreach ($equip as $row){
    ?>
        <tr>
          <td style="display: none;"><?= $row->id ?></td>
          <td align="center">
               <?php 
               $status = $row->status;
               if($status  == "1") { ?>                                    
                        <button id="<?php echo $row->id ?>" class="btn btn-xs green-jungle statusupdate1">&#10003</button>
               <?php } else  { ?>                                    
                        <button id="<?php echo $row->id ?>" class="btn btn-xs red-flamingo statusupdate0" >&#10005</button>
               <?php } ?>           
          </td>
       </tr>
    </tbody>
</table>

阿贾克斯:

var oTable =  $('#equipmain').DataTable( {
            "searching": false,        
            "processing":true,
            "columnWidth": 20,                 
            "serverSide": true,
            "autoWidth": true,

        }); 

$(document).on('click', '.statusupdate0', function() {
            var id = $(this).attr("id");

            $.ajax({
                url: "<?= base_url() ?>Admin/activateStatus/" + id,
                success: function (data) {
                    oTable.ajax.reload();
                }
            });

        });

        $(document).on('click', '.statusupdate1', function() {
            var id = $(this).attr("id");

            $.ajax({
                url: "<?= base_url() ?>Admin/deactivateStatus/" + id,
                success: function (data) {                     
                    oTable.ajax.reload();
                }
            });

        });

我不知道按钮不起作用的错误在哪里。

标签: javascriptphpajaxcodeigniterdatatable

解决方案


可能是您在通话;后遗漏了分号 ( ) 。base_url()在两个按钮的 AJAX 部分中,尝试更改<?= base_url() ?><?= base_url(); ?>并查看是否可以解决问题。


推荐阅读