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

时间:2011-12-13 13:34:33

标签: php ajax jquery codeigniter-2

我试图从数据库中删除记录而不重新加载页面。在视图文件中,我有以下代码。但是当我点击删除链接时没有任何反应。请你帮我找出我做错了什么?

提前致谢。

我的观点文件:

<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";

}

3 个答案:

答案 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)

  1. 您需要将“var a_href...”行放在ajax函数之外
  2. 您需要将单词选择器替换为引用当前单击元素的this

    var a_href = $(this).attr('href'); $.ajax({...