2009-12-24 143 views
1

鑑於頁:阿賈克斯與jQuery不工作

<script languge="javascript" type="text/javascript"> 
    $(document).ready(function() { 
    $('#delete').click(function(e) {; 
     e.preventDefault(); 
     var parent = $(this).parent(); 
     mainParent=parent.parent(); 

     $.ajax({ 
      type: 'post', 
      url: "<?= site_url('controller_Test/fnDelete') ?>", 
      data: "id="+$(this).prev().text(), 

      success: function() { 
       mainParent.slideUp(0,function() { 
        mainParent.remove(); 
       }); 
      } 

     }); 
     return false; 
    }); 
}); 

控制器--controller_Test

function fnDelete(){ 
    $data['delete_me']=$_POST['id']; 

    if (!empty($data['delete_me'])){ 
     $this->load->model('data_Model', '', TRUE); 
     $this->properties->deleteRec($data['delete_me']); 
     $this->output->set_output('works'); 
    } else { 
     $this->output->set_output('dontwork'); 

    } 
} 

在這種fnDelete應該在數據庫中刪除行。但它並沒有刪除。但它從視圖中刪除該行。我正在使用codeigniter。 我的代碼有什麼問題嗎?

+0

我不知道,但在視圖頁第3行的分號絕對不屬於那裏。 – 2009-12-24 05:46:36

+0

請發佈您的HTML。 – Sampson 2009-12-24 05:53:59

回答

2

首先,你已經有了一個奇怪的分號:

$('#delete').click(function(e) {; 

從最終刪除。然後,嘗試你的數據是這樣,而不是:

data: {"id":$(this).prev().text()} 

您可能還需要來處理您的回調中響應和echo出來的結果,所以你知道PHP是否成功,還是失敗。

success: function(results) { 
    if (results == "success") { 
    /* remove associated elements */ 
    } else { 
    alert("An error occurred."); 
    } 
} 
+0

我試過了它還沒有工作。我不認爲它執行url中提到的功能。 – ASD 2009-12-24 05:52:54

+0

您需要處理成功函數中的結果,以便知道返回的結果。 – Sampson 2009-12-24 05:53:26

+0

非常感謝。有效。我處理了結果,發現我的查詢存在問題。再次感謝 – ASD 2009-12-24 07:08:16

0

爲了測試你工作,你可能要使用小提琴手,或者您還可以添加回聲到控制器中,並在您發送警報成功的功能。例如:

$(document).ready(function() { 
    $('#delete').click(function(e) {;  
     e.preventDefault(); 
     $.ajax({ 
      dataType: 'text', 
      success: function(responseText) { 
       alert(responseText); 
      } 

     }); 
     return false; 
    }); 
}); 

控制器--controller_Test

function fnDelete(){ 
    $data['delete_me']=$_POST['id']; 
    echo 'deleting ' . $data['delete_me'] 
    // ... 
}