我有一个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。
答案 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脚本。