我想创建一个实时工作清单。因此,当添加新列表时,它将实时增加或当作业完成时,用户可以实时检查列表。所以在我的网站上连接的其他用户将实时知道没有刷新页面。
到目前为止,添加一个工作列表工作正常,但在进行检查时不起作用。如果它在1秒内完成,则检查该功能。检查时,使用php代码将作业列表的状态更新为1。 但问题是复选框无法正常工作。
这是我的HTML代码:
<div class="container-todolist">
<ul class="todo-list">
<?php foreach ($tampiltodolist as $list): ?>
<li class="<?php if ($list['status']==='1') {
echo " checked";
}else {
echo " notchecked";
} ?>">
<!-- drag handle -->
<span class="handle">
<i class="fa fa-ellipsis-v"></i>
<i class="fa fa-ellipsis-v"></i>
</span>
<!-- checkbox -->
<input type="checkbox" id="checkbox" <?php if ($list['status']==='1') {
echo "checked";
} ?> name="status" value="<?php echo $list['nolist']; ?>">
<!-- todo text -->
<span class="text"><?php echo $list['isi']; ?></span>
<!-- Emphasis label -->
<small class="label label-danger"><i class="fa fa-clock-o"></i>
<?php $tanggal=$list['tanggal'];
$waktu =$list['waktu'];
echo time_elapsed_string("$tanggal $waktu");
?>
</small>
<!-- General tools such as edit or delete-->
<div class="tools">
<i class="fa fa-edit"></i>
<i class="fa fa-trash-o"></i>
</div>
</li>
<?php endforeach; ?>
</ul>
</div>
这是我的javascript代码:
<script type="text/javascript">
const urlList="<?php echo site_url('Todolist/NewtodoList') ?>";
$(document).ready(function(){
const url="<?php echo site_url('Todolist/Addtodolist') ?>";
const urlList="<?php echo site_url('Todolist/NewtodoList') ?>";
const urlCheck ="<?php echo site_url('Todolist/checkedlist') ?>";
$('#formtodolist').on('submit',function(e){
e.preventDefault();
if (!$('#isi-text').val()) {
$('#isi-text').addClass('isInValid');
}else {
$.ajax({
type:"POST",
url:url,
data:$(this).serialize(),
success:function(data){
$('#todolist').modal('hide');
$('#isi-text').removeClass('isInValid'),
$('#isi-text').val('');
},
})
}
});
//$('#checkbox').on('click',function(){
$('input:checkbox').on('change',function(){
const checkdata= $(this).val();
if ($(this).prop('checked')) {
$.ajax({
type:"POST",
url:urlCheck,
data:{"checkdata":checkdata},
success(function(data){
$('.container-todolist').load(urlList);
})
});
}
});
});
function updateList(){
$('.container-todolist').load(urlList);
}
setInterval('updateList()',1000);
</script>
答案 0 :(得分:0)
这应该对你有用
$('input:checkbox').on('change',function(){
const checkdata= $(this).val();
if ($(this).prop('checked')) {
$.ajax({
type:"POST",
url:urlCheck,
data:{"checkdata":checkdata},
success(function(data){
$('.container-todolist').load(urlList);
})
});
}
});
答案 1 :(得分:-1)
你应该更新选择器:
$(document).on('change','input:checkbox',function(){
const checkdata= $(this).val();
if ($(this).prop('checked')) {
$.ajax({
type:"POST",
url:urlCheck,
data:{"checkdata":checkdata},
success(function(data){
$('.container-todolist').load(urlList);
})
});
}
});