2013-02-14 12 views
1

在這裏需要一點幫助。我只是想使用JavaScript從數據庫中刪除一行。但是面臨一些問題。如何在codeigniter中使用javascript進行刪除?

這是我的觀點:

<?php echo anchor("#","Delete",array('class'=>'selectedpagination', 'onclick'=>'confirmDelete("admin/editpage/","'.$file->page_id.'");'))?> 

和JavaScript是這裏

function confirmDelete(controller,id) 
{ 
    if(confirm("Are you sure you want to delete this record")) 
    { 
     <!--location.href="main.php?page="+page+"&tblname="+tblname+"&fldname="+fldname+"&id="+id+"&action=delete";--> 
     window.redirect("http://localhost/sama/index.php/admin/"+controller+"/"+id); 
    } 

如何使它工作嗎?它不工作。

請任何人或其他人,拼命需要幫助。提前致謝。

+0

爲什麼不試試jquery ajax?而不是 – 2013-02-14 12:05:52

+0

你在管理員/你的網址中增加了一倍:... index.php/admin/admin/editpage/...是否有意? – 2013-02-14 15:21:26

+0

Plz你會給我一個合適的方式來做到這一點... – 2013-02-15 10:57:42

回答

0

你可能要考慮使用jQuery的簡寫AJAX功能$.post()發佈的數據,你需要像這樣的頁面:

function confirmDelete(controller, id){ 

    if(confirm("Are you sure you want to delete this record")){ 

     var data = "page="+page+"&tblname="+tblname+ 
        "&fldname="+fldname+"&id="+id+"&action=delete"; 

     $.post(controller, data) 
      .done(function(data) { 
       // redirect or further logic here 
     }); 

    } 

} 

服務器端收到每個發佈的變量,如:

$action = $this->input->post('action');


除了上面的解決方案,你可能想重新考慮你的方法。您正在通過JavaScript將數據發送到控制器,然後在整個過程中使用JavaScript將瀏覽器重定向到另一個頁面。只需調用控制器並通過會話cookie或url傳遞所需的變量可能會更容易,並且在服務器端完成所有操作後,使用codeigniter的幫助函數將瀏覽器重定向到您想要的位置。如果你想構建一個異步應用程序,那麼在這裏使用javascript和AJAX會很好......但是...... ajax調用和重定向反而會打擊異步調用的目的。希望我幫了一下。

+0

非常感謝Aleris Shyti爲你的答案。其實我是一個新手,所以你請告訴我它是如何一步一步完成的。我會更高興。我長期以來一直在關注這個問題。請請.. – 2013-02-15 10:43:12

+0

@BlueRose你現在卡在哪裏?當你點擊一個按鈕時,你只需調用'confirmDelete()',jQuery就會在控制器中發佈數據串,就像提交表單一樣,但頁面不刷新。控制器應該閱讀並存儲發佈的數據,正如我在我的回答中所述。順便說一句,不要忘記在你的'

'中包含jQuery。如果你沒有jQuery的經驗,我建議你看看它。 – 2013-02-15 11:36:59