2011-12-13 128 views
0

我想從數據庫中刪除記錄而不重新加載頁面。在視圖文件中,我有以下代碼。但是當我點擊刪除鏈接時,沒有任何反應。你能否幫我找出我做錯的地方?使用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"; 

} 
+2

使用Firebug的,如果您的請求得到正確的URL,並返回什麼,以瞭解更多有關該錯誤 – Flo

+0

螢火蟲會挑選這件事 - 檢查JS控制檯找出什麼可能會出錯 – Ash

回答

1
  1. 你需要把 'var a_href...' 線的AJAX功能之外
  2. 你需要用this替換指代當前點擊元素的單詞選擇器。看到

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

+0

這是一個很好的觀點 - 我甚至沒有注意到變量聲明在'.ajax'調用選項中。 –

+0

謝謝Ash。它現在正在傳遞數據並刪除數據庫記錄。如果你有時間,請你告訴我一件事..當我點擊刪除鏈接刪除數據,它現在工作正常,但它仍然顯示在視圖頁面上的數據。如果我刷新頁面,那麼它就消失了。當我點擊刪除鏈接時,我怎麼能讓它消失?再次感謝 –

+0

您需要爲您的成功功能添加一些內容,例如'; $('a.delete')。hide();'或者如果你想更具體地將元素賦值給一個變量並且調用'hide()':'var el = $(this);'並且在成功函數中:'el.hide();' – Ash

1
var a_href = $('selector').attr('href'); 
$.ajax({... 
+0

@Srijon'$('selector')'你應該改變它的右選擇器,我認爲這是'$('a.delete')' – mgraph

1

由於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;

+0

正是..我想傳遞的ID值錨標籤並使用它來刪除數據。我試過 - var a_href = $('a.delete')。attr('href');但它不起作用。你能否請告訴我如何傳遞我的錨標籤的id值? –

+0

@Srijon我已經編輯了我的答案,包括你應該替換'var a_href = ...'行,試試看看它是否有效。 –

+0

非常感謝Anthony Grist。根據Ash的建議,我已將'var a_href ...'行放在ajax函數之外,並使用var a_href = $(this).attr('href'); $ .ajax({...它現在工作完美,非常感謝:) - –