0

好的,所以我昨天问了一个关于如何保存用户发布的博客文章的问题。我弄清楚了它的数据库方面,并且效果很好。现在,我想在单击 onclick 按钮后删除基于博客文章。通过我在网上挖掘的时间,我发现调用 jQuery AJAX 函数是最好的方法。我一直在使用它,但我无法让它工作。

从 blog.php 中的数据库检索到的博客代码:

$connection = mysql_connect("...", "...", "...") or die(mysql_error());
$database = mysql_select_db("...") or die(mysql_error());

$query = mysql_query("SELECT * FROM template") or die(mysql_error());
$template = mysql_fetch_array($query);

$loop = mysql_query("SELECT * FROM content ORDER BY content_id DESC") or die (mysql_error());
while ($row = mysql_fetch_array($loop))
{
        print $template['Title_Open'];
        print $row['title'];
        print '<button class="deletePost" onClick="deleteRow(' . $row['content_id'] . ')">Remove Post</button>';
        print $template['Title_Close'];

        print $template['Body_Open'];
        print $row['body'];
        print $template['Body_Close'];
}

mysqli_close($connection);

这会在 home.php 上创建以下 HTML:

<div class="blogtitle" class="post3">Title
<button class="deletePost" onClick="deleteRow(3)">Remove Post</button></div>
<div class="blogbody" class="post3">Content</div>

单击按钮时应该调用我的 remove.js (这是我开始失去我正在做的事情的地方):

$function deleteRow(id){
    $.ajax({
        url: "remove.php",
            type: "POST",
            data: {action: id}
    });
    return false;         
};

调用 remove.php (不知道我在做什么):

$con=mysqli_connect("...","...","...","...");
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_POST['action'];

$query = mysql_query("DELETE FROM content WHERE content_id=$id") or die(mysql_error());

我的目标是从表中删除带有 ID 的行,这反过来又会完全删除博客文章,因为它在遍历数据库表时不会看到该行。

有任何想法吗?

谢谢你的帮助,凯尔

4

2 回答 2

1

原始代码中的几个问题:Jquery 中的函数不应在开头使用 $ 符号,并且由于您需要传递单个值,因此我将使用查询字符串而不是 POst,而不是调用“die”在 php 中,我将使用受影响的行来返回值是否被删除的回调。但这只是我的方法,我确定还有其他方法。

以下是您代码中的一些小改进:

    //HTML
    <div class="blogtitle" class="post3">Title
    <button class="deletePost" data-item="3" >Remove Post</button></div>
    <div class="blogbody" class="post3">Content</div>

   //JQUERY
    jQuery(document).ready(function($) {

        $('button.deletePost').each(function(){

            var $this = $(this);

            $this.click(function(){

                var deleteItem  = $this.attr('data-item');

                $.ajax({url:'remove.php?action='+deleteItem}).done(function(data){

                    //colect data from response or custom code when success

                });
             return false;  
            });

        });


    });


   //PHP
    <?php 

    $id = $_REQUEST['action'];
    $query = mysql_query('DELETE FROM content WHERE content_id="'.$id.'"');
    $confirm = mysql_affected_rows() > 0 ? echo 'deleted' : echo 'not found or error';

     ?>

希望此示例对您有所帮助 :) 编码愉快!

于 2013-05-10T00:44:19.117 回答
0

我希望这可以帮助你我用它从我的购物车项目中删除项目。

$(".deleteitem").each(function(e) {
            $(this).click(function(e) {
                $.post("library/deletefromcart.php",{pid:$(this).attr('prodid'), ajax:true},function(){
                    window.location.reload()
                })
                return false;
             });
        });
于 2013-05-10T00:11:06.287 回答