Javascript AJAX调用从数据库中删除一行的PHP文件?
好的,昨天我问了一个关于如何保存用户的博客帖子的问题。我找到了它的数据库端,这很好。现在,我想在单击onclick按钮后删除一篇基于日志的文章。通过几个小时的网络挖掘,我发现调用jqueryajax函数是最好的方法。我一直在努力工作,但我不能让它工作 从Blog.php中的数据库检索的博客代码:Javascript AJAX调用从数据库中删除一行的PHP文件?,javascript,jquery,html,ajax,database,Javascript,Jquery,Html,Ajax,Database,好的,昨天我问了一个关于如何保存用户的博客帖子的问题。我找到了它的数据库端,这很好。现在,我想在单击onclick按钮后删除一篇基于日志的文章。通过几个小时的网络挖掘,我发现调用jqueryajax函数是最好的方法。我一直在努力工作,但我不能让它工作 从Blog.php中的数据库检索的博客代码: $connection = mysql_connect("...", "...", "...") or die(mysql_error()); $database = mysql_select_db("
$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);
调用remove.php(不知道我在做什么):
这里我的目标是从表中删除ID为的行,这将完全删除博客文章,因为它在数据库表中循环时不会看到该行
有什么想法吗
谢谢你的帮助,
Kyle我希望这会对您有所帮助。我使用它从我的购物车项目中删除了项目
$(".deleteitem").each(function(e) {
$(this).click(function(e) {
$.post("library/deletefromcart.php",{pid:$(this).attr('prodid'), ajax:true},function(){
window.location.reload()
})
return false;
});
});
原始代码中有两个问题:Jquery中的函数在开始时不应该使用$符号,因为您需要传递单个值,所以我将使用查询字符串而不是POst,而不是在php中调用“die”,我将使用受影响的行返回值是否被删除的回调。但这只是我的方法,我肯定还有其他方法 以下是代码中的一些小改进:
//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';
?>
//HTML
标题
撤职
内容
//JQUERY
jQuery(文档).ready(函数($){
$('button.deletePost')。每个(函数(){
var$this=$(this);
$this。单击(函数(){
var deleteItem=$this.attr('data-item');
$.ajax({url:'remove.php?action='+deleteItem}).done(函数(数据){
//成功时从响应或自定义代码收集数据
});
返回false;
});
});
});
//PHP
欢迎来到堆栈溢出!在新代码中。它们不再得到维护,而是在使用。看到红色的盒子了吗?学习准备好的语句,然后使用or。这是我的Web开发入门课程的最后一个项目。他会为我使用数据库而高兴的,哈哈。希望有人早点告诉我mysql_*不受欢迎。这是我被调查时所能找到的,谢谢!谢谢你的意见!我会测试一下,看看我能做些什么。好吧,看来我们有进展了。我在“$.ajax({url:'remove.php?action='+deleteItem}).done(函数(数据){”)上得到一个“500(内部服务器错误)”。我需要有成功代码吗?成功代码主要用于两个原因:a)通知调用成功,以及b)创建自定义操作或通知用户其操作已执行。成功主要用于:a)确保调用成功或未成功(调试)以及b)创建自定义操作或通知用户其操作已执行。“500错误”是处理Php时出现“致命错误”。这意味着可能存在语法错误/mysql调用未正确配置。我从您的原始代码中注意到的其他内容是“mysqli_close($connection)”,这是不必要的,因为数据库会自动关闭,请确保在键入“mysql”而不是“mysqli”时验证您的脚本“它们是不同的模块/方法。
$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());
$(".deleteitem").each(function(e) {
$(this).click(function(e) {
$.post("library/deletefromcart.php",{pid:$(this).attr('prodid'), ajax:true},function(){
window.location.reload()
})
return false;
});
});
//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';
?>