我试图做到这一点,所以当我单击一个跨度图标时,它将把article_id发送到删除我的文章的php sql页面,我正在使用jQuery Ajax发送id,该id在jQuery端可以发送http发布请求完成后,我的表行仍然存在,任何人都可以查看我的代码是否有问题,在此先感谢您!
<?php $sql_categories = "SELECT art_id, art_title, art_company, art_cat_id, art_sta_id, art_date, art_rating, art_price, cat_id, cat_name, sta_id, sta_name FROM app_articles LEFT JOIN app_categories ON app_articles.art_cat_id = app_categories.cat_id LEFT JOIN app_status ON app_articles.art_sta_id = app_status.sta_id ORDER BY art_order ASC"; if($result = query($sql_categories)){ $list = array(); while($data = mysqli_fetch_assoc($result)){ array_push($list, $data); } foreach($list as $i => $row){ ?> <div class="row" id="page_<?php echo $row['art_id']; ?>"> <div class="column one"> <span class="icon-small move"></span> <a href="edit-article.php?art_id=<?php echo $row['art_id']; ?>"><span class="icon-small edit"></span></a> <span id="<?php echo $row['art_id']; ?>" class="icon-small trash"></span> </div> <div class="column two"><p><?php echo $row['art_title']; ?></p></div> <div class="column two"><p><?php echo $row['art_company']; ?></p></div> <div class="column two"><p><?php echo $row['cat_name']; ?></p></div> <div class="column one"><p><?php echo $row['art_date']; ?></p></div> <div class="column one"><p><?php echo $row['art_rating']; ?></p></div> <div class="column one"><p><?php echo $row['art_price']; ?></p></div> <div class="column one"><p><?php echo $row['sta_name']; ?></p></div> <div class="column one"><a href=""><span class="icon-small star"></span></a></div> </div> <?php } } else { echo "FAIL"; } ?> jQuery $(document).ready(function(){ $(".trash").click(function(){ var del_id = $(this).attr('id'); $.ajax({ type:'POST', url:'ajax-delete.php', data: 'delete_id='+del_id, success:function(data) { if(data) { } else { } } }); }); }); PHP mySQL Statement if(isset($_POST['delete_id'])) { $sql_articles = "DELETE FROM app_articles WHERE art_id = ".$_POST['delete_id']; if(query($sql_articles)) { echo "YES"; } else { echo "NO"; } } else { echo "FAIL"; } ?>
您的行仍然存在的原因,因为AJAX调用不会刷新页面。如果要删除行,则必须执行以下操作:
假设您的跨度点击事件在行内
$(".trash").click(function(){ var del_id = $(this).attr('id'); var rowElement = $(this).parent().parent(); //grab the row $.ajax({ type:'POST', url:'ajax-delete.php', data: {delete_id : del_id}, success:function(data) { if(data == "YES") { rowElement.fadeOut(500).remove(); } else { } } });
更换:
data: 'delete_id='+del_id,
与:
data: delete_id : del_id,