gpt4 book ai didi

php - AJAX更新删除表: backend works but glitch with frontend中的tr

转载 作者:行者123 更新时间:2023-11-29 13:48:41 28 4
gpt4 key购买 nike

下面脚本的目的是允许用户发布新的更新并在不刷新页面的情况下删除它们:这就是我使用 AJAX 的原因。

有两个小故障:

  • 当用户发布更新时,它会正确保存在数据库中,并且正确的更新会在我的表格中向下滑动,但是当我查看源代码时,我可以看到回显了错误的 postid(它始终是postid 来自数据库中下面几行)。

  • 当用户删除帖子时,前端没有任何反应:tr 不会向上滑动,但该行确实在数据库中被正确删除。

PHP 部分:

echo "<table id=\"update_list\">
<tr class=\"cell$postid\">
<td>$post

<div id=\"delete\">
<span class=\"delete_update\"><a href=\"#\" id=\"$postid;\">X</a></span>
</div>
<hr>
</td>
</tr>
</table>";

AJAX 部分:

<script type="text/javascript">
$(function() {

$("#addpost_button").click(function()
{
var element = $(this);
var boxval = $("#status").val(); // #status is the ID of the input where the users type in updates
var dataString = 'post='+ boxval;
if(boxval=='')
{
alert("Please Enter Some Text");
}
else
{
$("#flash").show();

$.ajax({
type: "POST",
url: "update_post.php",
data: dataString,
cache: false,
success: function(html){

$("#cell").prepend(html);
$("#update_list tr:first").slideDown("slow");
document.getElementById('post').value='';
$("#flash").hide();
}
});
}
return false;
});

$('.delete_update').live("click",function()
{
var ID = $(this).attr("id");
var dataString = 'postid='+ ID;
if(confirm("Sure you want to delete this post? "))
{
$.ajax({
type: "POST",
url: "delete_post.php",
data: dataString,
cache: false,
success: function(html){
$(".cell"+ ID).slideUp('slow', function() {$(this).remove();});
}
});
}
return false;
});
});
</script>

任何帮助将不胜感激!

编辑:update_post.php 中的代码:

<?php
include "includes/config.php";
if(isset($_POST['post']))


$table=query("INSERT INTO postlist (id, postid, post) VALUES (?, ?, ?)",
$_SESSION["id"], '', $_POST["post"]);
$table = query("SELECT post, postid FROM postlist WHERE id = ? ORDER BY postid DESC",
$_SESSION["id"]);

foreach ($table as $row){
$post=$_POST['post'];
$postid = $row["postid"];



echo "<table id=\"update_list\">
<tr class=\"cell$postid\">
<td>$post

<div id=\"delete\">
<span class=\"delete_update\"><a href=\"#\" id=\"$postid;\">X</a></span>
</div>
<hr>
</td>
</tr>
</table>";
}
?>

最佳答案

你必须更换

 <span class=\"delete_update\"><a href=\"#\" id=\"$postid;\">X</a></span>

 <span class=\"delete_update\"><a href=\"#\" id=\"$postid\">X</a></span> 

关于php - AJAX更新删除表: backend works but glitch with frontend中的tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035505/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com