ajax a href onclick获取php变量并执行php文件
在我提出这个问题之前,我已经提到了这个问题的例子。 但是,它似乎不起作用。 不使用ajax,我可以删除我的post,但在实现ajax后,deleteAtc.php似乎无法正常工作。
我的删除页面代码(delete.php)
Select an Article to Delete:
Delete
$(function(){ $('#link').click(function(){ var id = ; $.ajax({ type: "GET", url: "deleteAtc.php", data: "id"+id+, sucess: function() { $('#sucess').html(data); } }) return false; }); });
虽然我的deleteAtc.php代码:
prepare('DELETE FROM articles WHERE article_id = ?'); $query->bindValue(1, $id); $query->execute(); echo "Article deleted"; } } ?>
我在这里要做的是删除记录而不重定向到deleteAtc.php
,它将删除记录并替换Article Deleted
我可以知道我在阿贾克斯方面出了什么问题吗?
请参阅下面的更新问题
根据以下答案,这是我更新的代码:
delete.php
Select an Article to Delete:
<a href="#" class="link" data-artid="">Delete
脚本
$(function(){ $('.link').click(function(){ var elem = $(this); $.ajax({ type: "GET", url: "deleteAtc.php", data: "id="+elem.attr('data-artid'), dataType:"json", success: function(data) { if(data.success){ elem.hide(); $('#message').html(data.message); } } }); return false; }); });
deleteAtc.php
prepare('DELETE FROM articles WHERE article_id = ?'); $query->bindValue(1, $id); $query->execute(); //Also try to handle false conditions or failure echo json_encode(array('success'=>TRUE,'message'=>"Article deleted")); } } ?>
不知何故,如果我一次删除两条记录,只有第一条记录回显结果,第二条删除的结果不会回显结果。
我想知道,可以添加jquery动画来显示成功消息和.hide记录被删除了吗?
首先,ID并不意味着重复,而是使用类选择器。 您还可以使用自定义数据属性来存储文章的ID。
尝试
Select an Article to Delete:
Delete
脚本
在服务器端
prepare('DELETE FROM articles WHERE article_id = ?'); $query->bindValue(1, $id); $query->execute(); //Also try to handle false conditions or failure echo json_encode(array('success'=>TRUE,'message'=>"Article deleted")); } } ?>
上面的脚本不起作用你必须改变如下。 您一次又一次地重复相同的标识符function。 将jquery脚本保留在foreach循环之外。 您必须使用文章ID添加class属性。
Select an Article to Delete:
' >Delete
您创建了几个id="link"
。 ID必须是唯一的。
你必须写
id="link echo $article['article_id']; ?>"
以及
$('#link echo $article["article_id"]; ?>').click(function() {...})