基于来自while循环的id从数据库中删除行

时间:2011-04-28 20:35:47

标签: php

我有一个while循环,弹出我的所有博文。与这些博客文章一起,它在每个帖子旁边放置一个带有红色x的按钮,当我点击它时,我希望它删除它旁边的帖子。问题?我还没有想出一个有效的方法来决定删除哪个帖子。它通常会删除最大ID或所有帖子的帖子。所以我会告诉你我有什么......(这不是我的实际代码,只是一个想法)。

       $result = mysql_query("SELECT * FROM post");

       while($row = mysql_fetch_array($result){


         $someVariable = $row['Id'];
         $someVariable1 = $row['title'];
         $someVariable2 = $row['content'];

?>
        //This form right below here is the delete button. It functions, just need how to pull the correct Id***

        <form action="" method="post">
       <input type="submit" id ="<?php echo $someVariable ?>" value="" class="submit2" onClick="confirmation()">
    </form>

    <form action="" method="post">
      <input type="submit" value="" class="submit3">
    </form>

        <script type="text/javascript">
       <!--
        function confirmation() {
            var answer = confirm("Delete Post?")
            if (answer){

                <?php 


                    mysql_query("DELETE FROM posts WHERE id=***"); 

                ?>


            }

        }
       //-->
       </script>




<?php }?>

Javascript中的函数是问题所在。我似乎无法弄清楚如何让它回馈正确的Id。我对php非常原始,所以对我来说很容易:p。

8 个答案:

答案 0 :(得分:1)

您想要的是在用户确认删除时提交表单并在服务器上处理删除本身。

  function confirmation() {
    var answer = confirm("Delete Post?")
       return answer;
  }

这样,当用户确认时,表单会提交,当用户不确认时,提交会取消。

将id包含在名为“id”的表单上的隐藏元素中。让表单提交到一个php页面,然后从$ _POST ['id']中获取id并在数据库上执行SQL语句,然后再次重定向到列表页面。

答案 1 :(得分:1)

你不能用这种方式混合PHP和Javascript。听我说,你似乎被某事或某人误导了,你必须从头开始基础

请听我说:寻找一些基本的PHP教程并记住PHP是一个文本预处理器,而Javascript让你在页面完全加载后进行一些动态交互。它是客户端,而PHP是服务器端。混合它们是您稍后可能会学到的。

你可能不喜欢这个答案,如果你愿意,可以选择它,但对于这种情况来说,它是唯一明智的答案。忘记AJAX和其他人喜欢的技巧,其他人建议你回答这个问题,因为你最终会在学习基础知识时使用它们,否则你会因为无法使它们工作而感到沮丧。你必须做一些“你好世界”一段时间。

回到基础,或者你会搞得一团糟!

答案 2 :(得分:0)

你不能以你的建议方式混合PHP和Javascipt。 PHP部分在服务器上执行,结果返回给用户,然后才执行Javascript。

您需要使用AJAX / XmlHTTPRequest来实现您的目标。

答案 3 :(得分:0)

假设我理解您的要求,而不是设置提交元素的id,最好包含一个hidden表单元素:

<input type='hidden' name='postID' value='<?php echo $someVariable; ?>'>

处理表单时,请改用它。

答案 4 :(得分:0)

好吧我不做PHP而且我现在已经在长期合同中被困在winforms土地上大约4年但是我相信答案是你可以将parmeter(this)传递给你的确认()函数确认(this),它将允许您访问javascript函数中按钮的所有属性。

答案 5 :(得分:0)

您无法像预期的那样在JavaScript中执行PHP脚本。 你需要做的是用ajaxian方法调用PHP脚本。

答案 6 :(得分:0)

有你的php echo

"<a href=\"javascript:deleteMe($id)\"><img src="x.jpg" /></a>"

进入html。然后javascript应该接受删除函数的param并向你的php文件提交一个AJAX请求。

答案 7 :(得分:0)

您不需要每个条目的表单。只需使用带有指向您的确认功能的onclick处理程序的锚标记。您可以将记录的ID回显到您的确认功能中。然后让确认函数更新表单中的隐藏字段以删除记录ID,然后将表单提交到删除php脚本。