我试图从数据库中删除记录而不重新加载页面。在视图文件中,我有以下代码。但当我点击删除链接时,什么也没发生。你能帮我找出我哪里做错了吗?
提前感谢。
我的视图文件:
<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({...
var a_href = $('selector').attr('href');
$.ajax({...
正如mgraph在他的回答中指出的,var a_href = $('selector').attr('href');
行是不正确的。你想用this
代替'selector'
,这样你就可以从被点击的锚中获得href属性。
也就是说,我认为这仍然可能是错误的-当然你想要传递回条目的id删除,这似乎是存储在锚标记的id
属性,而不是总是传递回#
符号?
要传递id而不是href,请替换如下:var a_href = $('selector').attr('href');
用这个:var a_href = this.id;