使用jQuery删除数据库记录AJAX不起作用
我想从数据库中删除记录而不重新加载页面。在视图文件中,我有以下代码。但是当我点击删除链接时,没有任何反应。你能否帮我找出我做错的地方?使用jQuery删除数据库记录AJAX不起作用
在此先感谢。
我的视图文件:
<script type="text/javascript">
$(function(){ // added
$('a.delete').click(function(){
$.ajax({
var a_href = $('selector').attr('href');
type: "POST",
url: "<?php echo base_url(); ?>student_fee_status/payment_info_delete",
data: "id="+a_href,
success: function(html){
$("#show").html(html);
}
});
return false
});
}); // added
</script>
<?php if(count($records) > 0) { $i = 0; foreach ($records as $row){ $i++; ?>
<span> <?php echo $row['fee_type']; ?> : <?php echo $row['fee_amount']; ?> [<a id='<?php echo "$paymentid" ;?>'
class='delete' href='#'>Delete</a>]</span> <br>
<?php }} ?>
这是我的控制器:
function payment_info_delete(){
$id = mysql_real_escape_string($_POST['id']);//Some clean up :)
$query= $this->db->delete('studentpayment2', array('pid' => $id));
echo "$id";
}
- 你需要把 '
var a_href...
' 线的AJAX功能之外 -
你需要用
this
替换指代当前点击元素的单词选择器。看到var a_href = $(this).attr('href'); $.ajax({...
这是一个很好的观点 - 我甚至没有注意到变量声明在'.ajax'调用选项中。 –
谢谢Ash。它现在正在传递数据并删除数据库记录。如果你有时间,请你告诉我一件事..当我点击删除链接删除数据,它现在工作正常,但它仍然显示在视图页面上的数据。如果我刷新页面,那么它就消失了。当我点击删除链接时,我怎么能让它消失?再次感谢 –
您需要为您的成功功能添加一些内容,例如'; $('a.delete')。hide();'或者如果你想更具体地将元素赋值给一个变量并且调用'hide()':'var el = $(this);'并且在成功函数中:'el.hide();' – Ash
var a_href = $('selector').attr('href');
$.ajax({...
@Srijon'$('selector')'你应该改变它的右选择器,我认为这是'$('a.delete')' – mgraph
由于mgraph在他的回答中指出,该行var a_href = $('selector').attr('href');
是不正确。您想用this
替换'selector'
,以便从单击的锚点获取href属性。
这就是说,我认为这仍然可能是错误的 - 当然你想传回要删除的条目的ID,这似乎存储在锚标记的id
属性中,而不是始终传回#
符号?与此 var a_href = $('selector').attr('href');
:
要通过ID后面代替,而不是在href,更换此 var a_href = this.id;
正是..我想传递的ID值锚标签并使用它来删除数据。我试过 - var a_href = $('a.delete')。attr('href');但它不起作用。你能否请告诉我如何传递我的锚标签的id值? –
@Srijon我已经编辑了我的答案,包括你应该替换'var a_href = ...'行,试试看看它是否有效。 –
非常感谢Anthony Grist。根据Ash的建议,我已将'var a_href ...'行放在ajax函数之外,并使用var a_href = $(this).attr('href'); $ .ajax({...它现在工作完美,非常感谢:) - –
使用Firebug的,如果您的请求得到正确的URL,并返回什么,以了解更多有关该错误 – Flo
萤火虫会挑选这件事 - 检查JS控制台找出什么可能会出错 – Ash