使用jQuery AJAX删除数据库记录不工作


Deleting database records using jQuery AJAX is not working

我试图从数据库中删除记录而不重新加载页面。在视图文件中,我有以下代码。但当我点击删除链接时,什么也没发生。你能帮我找出我哪里做错了吗?

提前感谢。

我的视图文件:

<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";
}
  1. 你需要把' var a_href... '行放在ajax函数的外面
  2. 您需要将单词选择器替换为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;