php 如何在不刷新整个页面的情况下删除数据?
How to delete data without refreshing whole page in php?
正在删除数据,但整个页面已重新加载。如果不重新加载页面,则必须删除数据。代码如下,
admin.js
userdeletecnfrm();
function userdeletecnfrm(){
$('.userdeletecnfrm').unbind("click");
$(".userdeletecnfrm").click(function(){
var uid=$(this).attr('data-id');
$.ajax({
type: "POST",
data: "userId=" + uid,
url: urljs+"admin/Users/deleteconfrmview",
dataType:'json',
}).done(function( data ) {
$("#deluser").html(data.view);
deleteuser();
});
});
}
deleteuser();
function deleteuser(){
$('.deleteuser').unbind("click");
$('.deleteuser').on("click",function(e){
var id=$(this).attr('data-id');
var parent = $(this).closest('tr');
$.ajax({
type: "POST",
data: "userId=" + id,
url: urljs+"admin/Users/deleteuser",
dataType:'json',
}).done(function( data ) {
$("#deluser").hide();
$(parent).remove();
});
e.preventDefault();
});
}
以上代码正在通过重新加载页面来删除数据。
userview.php
<!-- USER VIEW -->
<section id="categories-content" class="categories-content">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="content table-responsive">
<center><div id="comment"></div></center>
<button class="btn btn-primary" data-toggle="modal" data-target="#newuser" >Add User</button>
<div class="addhere"></div>
<table class="table responsive">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
foreach ($userQ->result() as $rowuser){
?>
<tr>
<td><?php echo $rowuser->userId?></td>
<td>
<?php if($rowuser->profilePic!=''){ ?>
<img alt="" src="<?php echo base_url();?>private/<?php echo $rowuser->userId;?>/<?php echo $rowuser->profilePic;?>" style="width: 50px; height:50px"> <?php echo $rowuser->name;?>
<?php }else{?>
<img src="<?php echo base_url()?>public/images/default-profile_pic.png" alt="" style="width: 50px; height:50px"><?php echo $rowuser->name;?>
<?php }?>
</td>
<td><?php echo $rowuser->email?></td>
<td><?php echo $rowuser->roleName?></td>
<td>
<a class="edit edituser" name="edituser" data-id="<?php echo $rowuser->userId;?>"
data-toggle="modal" data-target="#upuser" title="edit" href="#">
<i class="icon md-pencil"></i>
</a>
<a class="delete userdeletecnfrm" name="deleteuser" data-id="<?php echo $rowuser->userId;?>"
data-toggle="modal" data-target="#deluser" title="delete" href="#">
<i class="icon md-recycle"></i>
</a>
<?php
if($rowuser->status!=0){
?>
<a class="inactiveuser" name="Inactivate" data-id="<?php echo $rowuser->userId;?>"
title="Inactivate" href="#">
<span class="label label-success"> Active </span>
</a>
<?php }else{?>
<a class="activeuser" name="Activate" data-id="<?php echo $rowuser->userId;?>"
title="Activate" href="#">
<span class="label label-danger"> Inactive </span>
</a>
<?php }?>
<!--<button class="btn btn-primary resetpassword" data-id="<?php echo $rowuser->email;?>">Reset password</button>-->
</td>
</tr>
<?php }?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<!-- END /USER VIEW-->
用户删除确认窗口
<!-- DELETE USER CONFIRMATION VIEW -->
<div class="modal-dialog" role="document">
<form id="deluser">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close cancel" data-dismiss="modal" aria-label="Close"><span class="closeForm">
<i class="icon md-close-1"></i></span></button>
<h4 class="modal-title" id="myModalLabel"><font color="black"><center>Delete User</center></font></h4>
</div>
<div class="modal-body">
<p><b>Are you sure about this ?</b></p>
<div class="modal-footer">
<button type="submit" class="btn btn-primary deleteuser" data-id="<?php echo $userId;?>" >Yes</button>
<button type="button" class="btn btn-default cancel" data-dismiss="modal">No</button>
</div>
</div>
</div>
</form>
</div>
<!-- END/DELETE USER CONFIRMATION VIEW -->
<script>
$('.cancel').unbind("click");
$('.cancel').on("click",function(e){
$('.modal-dialog').remove();
e.preventDefault();
});
</script>
而不是 window.location.reload();
,只需像 $("#yourtrid").hide();
一样隐藏您的 table 行(我假设要删除的数据在 table 行中)
这应该是评论,但我在这里的声望很低
为什么不删除 window.location.reload()?还要在下面添加一个return false:我的意思是
<script>
function deleteuser() {
$('.deleteuser').unbind("click");
$('.deleteuser').on("click", function (e) {
e.preventDefault();
var id = $(this).attr('data-id');
$.post(urljs + "admin/Users/deleteuser", {'userId': id}, function (data) {
if (data.result > 0) {
$("#deletecategory").html(data.msg);
} else {
$.modal(data.view);
$("#deletecategory").html(data.mesg);
}
}, "json");
return false;
});
}
</script>
还有你决定不在这里使用 $.ajax 的任何原因吗?您可以使用 $.ajax 并将类型 'POST' 添加到 ajax 调用中。
或者,您可以在 document.ready 上使用一个函数来获取当前用户列表。当 ajax post returns 成功时,你隐藏 window 或 table div id $('#div_id' )。隐藏();立即,将检索当前用户列表。所以,删除的用户不会出现。
正在删除数据,但整个页面已重新加载。如果不重新加载页面,则必须删除数据。代码如下,
admin.js
userdeletecnfrm();
function userdeletecnfrm(){
$('.userdeletecnfrm').unbind("click");
$(".userdeletecnfrm").click(function(){
var uid=$(this).attr('data-id');
$.ajax({
type: "POST",
data: "userId=" + uid,
url: urljs+"admin/Users/deleteconfrmview",
dataType:'json',
}).done(function( data ) {
$("#deluser").html(data.view);
deleteuser();
});
});
}
deleteuser();
function deleteuser(){
$('.deleteuser').unbind("click");
$('.deleteuser').on("click",function(e){
var id=$(this).attr('data-id');
var parent = $(this).closest('tr');
$.ajax({
type: "POST",
data: "userId=" + id,
url: urljs+"admin/Users/deleteuser",
dataType:'json',
}).done(function( data ) {
$("#deluser").hide();
$(parent).remove();
});
e.preventDefault();
});
}
以上代码正在通过重新加载页面来删除数据。
userview.php
<!-- USER VIEW -->
<section id="categories-content" class="categories-content">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="content table-responsive">
<center><div id="comment"></div></center>
<button class="btn btn-primary" data-toggle="modal" data-target="#newuser" >Add User</button>
<div class="addhere"></div>
<table class="table responsive">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
foreach ($userQ->result() as $rowuser){
?>
<tr>
<td><?php echo $rowuser->userId?></td>
<td>
<?php if($rowuser->profilePic!=''){ ?>
<img alt="" src="<?php echo base_url();?>private/<?php echo $rowuser->userId;?>/<?php echo $rowuser->profilePic;?>" style="width: 50px; height:50px"> <?php echo $rowuser->name;?>
<?php }else{?>
<img src="<?php echo base_url()?>public/images/default-profile_pic.png" alt="" style="width: 50px; height:50px"><?php echo $rowuser->name;?>
<?php }?>
</td>
<td><?php echo $rowuser->email?></td>
<td><?php echo $rowuser->roleName?></td>
<td>
<a class="edit edituser" name="edituser" data-id="<?php echo $rowuser->userId;?>"
data-toggle="modal" data-target="#upuser" title="edit" href="#">
<i class="icon md-pencil"></i>
</a>
<a class="delete userdeletecnfrm" name="deleteuser" data-id="<?php echo $rowuser->userId;?>"
data-toggle="modal" data-target="#deluser" title="delete" href="#">
<i class="icon md-recycle"></i>
</a>
<?php
if($rowuser->status!=0){
?>
<a class="inactiveuser" name="Inactivate" data-id="<?php echo $rowuser->userId;?>"
title="Inactivate" href="#">
<span class="label label-success"> Active </span>
</a>
<?php }else{?>
<a class="activeuser" name="Activate" data-id="<?php echo $rowuser->userId;?>"
title="Activate" href="#">
<span class="label label-danger"> Inactive </span>
</a>
<?php }?>
<!--<button class="btn btn-primary resetpassword" data-id="<?php echo $rowuser->email;?>">Reset password</button>-->
</td>
</tr>
<?php }?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<!-- END /USER VIEW-->
用户删除确认窗口
<!-- DELETE USER CONFIRMATION VIEW -->
<div class="modal-dialog" role="document">
<form id="deluser">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close cancel" data-dismiss="modal" aria-label="Close"><span class="closeForm">
<i class="icon md-close-1"></i></span></button>
<h4 class="modal-title" id="myModalLabel"><font color="black"><center>Delete User</center></font></h4>
</div>
<div class="modal-body">
<p><b>Are you sure about this ?</b></p>
<div class="modal-footer">
<button type="submit" class="btn btn-primary deleteuser" data-id="<?php echo $userId;?>" >Yes</button>
<button type="button" class="btn btn-default cancel" data-dismiss="modal">No</button>
</div>
</div>
</div>
</form>
</div>
<!-- END/DELETE USER CONFIRMATION VIEW -->
<script>
$('.cancel').unbind("click");
$('.cancel').on("click",function(e){
$('.modal-dialog').remove();
e.preventDefault();
});
</script>
而不是 window.location.reload();
,只需像 $("#yourtrid").hide();
一样隐藏您的 table 行(我假设要删除的数据在 table 行中)
这应该是评论,但我在这里的声望很低
为什么不删除 window.location.reload()?还要在下面添加一个return false:我的意思是
<script>
function deleteuser() {
$('.deleteuser').unbind("click");
$('.deleteuser').on("click", function (e) {
e.preventDefault();
var id = $(this).attr('data-id');
$.post(urljs + "admin/Users/deleteuser", {'userId': id}, function (data) {
if (data.result > 0) {
$("#deletecategory").html(data.msg);
} else {
$.modal(data.view);
$("#deletecategory").html(data.mesg);
}
}, "json");
return false;
});
}
</script>
还有你决定不在这里使用 $.ajax 的任何原因吗?您可以使用 $.ajax 并将类型 'POST' 添加到 ajax 调用中。
或者,您可以在 document.ready 上使用一个函数来获取当前用户列表。当 ajax post returns 成功时,你隐藏 window 或 table div id $('#div_id' )。隐藏();立即,将检索当前用户列表。所以,删除的用户不会出现。