使用按钮实时将活动状态更改为非活动状态

时间:2018-10-29 11:44:16

标签: javascript php ajax codeigniter datatable

我正在使用PHP CodeIgniter Framework将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>

AJAX:

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();
                }
            });

        });

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

1 个答案:

答案 0 :(得分:0)

可能是您在val things: List<Thing> = Gson().fromJson( JSONObject(json).getJSONArray("things").toString(), object : TypeToken<List<Thing>>() {}.type) Log.i("output", things.toString()) 通话后丢失了分号(;)。在两个按钮的AJAX部分中,尝试将base_url()更改为<?= base_url() ?>,看看是否可以解决问题。