我正在使用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">✓</button>
<?php } else { ?>
<button id="<?php echo $row->id ?>" class="btn btn-xs red-flamingo statusupdate0" >✕</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();
}
});
});
我不知道按钮不起作用的错误在哪里。
答案 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() ?>
,看看是否可以解决问题。