【发布时间】:2014-01-30 16:14:28
【问题描述】:
在我问这个问题之前,我已经参考了this question的例子。但是,它似乎不起作用。如果不使用 ajax,我可以删除我的帖子,但是在实现 ajax 之后,deleteAtc.php 似乎无法正常工作。
我的删除页面代码(delete.php)
<h4>Select an Article to Delete:</h4>
<?php foreach ($articles as $article) { ?>
<span><?php echo $article['article_title']; ?></span> <a href="#" id="link">Delete</a><br />
<script type="text/javascript">
$(function(){
$('#link').click(function(){
var id = <?php echo $article['article_id']; ?>;
$.ajax({
type: "GET",
url: "deleteAtc.php",
data: "id"+id+,
sucess: function() {
$('#sucess').html(data);
}
})
return false;
});
});
</script>
<div id="success"></div><br />
<?php } ?>
而我的 deleteAtc.php 代码:
<?php
session_start();
include_once('../includes/connection.php');
if (isset($_SESSION['logged_in'])) {
if (isset($_GET['id'])) {
$id = $_GET['id'];
$query = $pdo->prepare('DELETE FROM articles WHERE article_id = ?');
$query->bindValue(1, $id);
$query->execute();
echo "Article deleted";
}
}
?>
我在这里要做的是删除记录而不重定向到deleteAtc.php,它将删除记录并替换Article Deleted
我可以知道我在 ajax 方面哪里出错了吗?
请参阅下面的更新问题
根据下面的答案,这是我更新的代码:
删除.php
<h4>Select an Article to Delete:</h4>
<div id="message"></div>
<?php foreach ($articles as $article) { ?>
<span><?php echo $article['article_title']; ?></span>
<a href="#" class="link" data-artid="<?php echo $article['article_id']; ?>">Delete</a><br />
<?php } ?>
脚本
<script type="text/javascript">
$(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;
});
});
</script>
deleteAtc.php
<?php
session_start();
include_once('../includes/connection.php');
if (isset($_SESSION['logged_in'])) {
if (isset($_GET['id'])) {
$id = $_GET['id'];
$query = $pdo->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 动画添加到 .show 成功消息和 .hide 已删除记录?
【问题讨论】:
-
语法错误意外令牌
"id"+id+, -
从
data: "id"+id更改为data: "id=<?php echo $article['article_id']; ?>" -
@Musa 它没有显示这个错误,这就是为什么我要找出问题所在,我可以知道为我想要的输出做的正确方法是什么吗?
-
@Nouphal.M 是的,现在它可以工作了,但它没有回显结果并隐藏已删除的记录
-
sucess: function() {应该是success: function(data) {,然后data将包含来自服务器的消息。在下面的行中,它也应该是#success而不是#sucess
标签: php jquery sql ajax animation