我试图从数据库中删除记录而不重新加载页面。在视图文件中,我有以下代码。但是当我点击删除链接时没有任何反应。请你帮我找出我做错了什么?
提前致谢。
我的观点文件:
<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";
}
答案 0 :(得分:1)
var a_href = $('selector').attr('href');
$.ajax({...
答案 1 :(得分:1)
正如mgraph在答案中指出的那样,var a_href = $('selector').attr('href');
行不正确。您希望将'selector'
替换为this
,以便从所点击的锚点获取href属性。
那就是说,我认为这仍然可能是错的 - 当然你想要传回要删除的条目的id,它似乎存储在锚标签的id
属性中,而不是总是传递返回#
符号?
要传回id而不是href,请替换为:
var a_href = $('selector').attr('href');
有了这个:
var a_href = this.id;
答案 2 :(得分:1)
var a_href...
”行放在ajax函数之外您需要将单词选择器替换为引用当前单击元素的this
。
var a_href = $(this).attr('href');
$.ajax({...