javascript
  • ajax
  • 2012-05-15 31 views 1 likes 
    1

    我使用我的數據庫中的值填充表。我已將刪除圖標包含在可刪除的行中。圖像有onclick='deleteCat(id);'財產,該ID是一個JSON陣列採取槽的循環,像這樣:我的功能只適用於我的ajax調用後的警報

    string = "<td align='center'><a href=''><img border='0' src='../images/Bullet-Delete.png' alt='delete' onclick='deleteCat("+json[i]['id']+");'/></a></td>";

    這是我deleteCat功能:

    function deleteCat(id){ 
        var dataString = "catId=" + id; 
        $.ajax({ 
         type: "POST", 
         url: "../ajax/categorie_verwijderen.php", 
         data: dataString, 
         success: function(data) { 
           //$("#allecat").find("tr:gt(0)").remove(); 
           //update_table();     
         } 
        }); 
        //alert(id); 
    } 
    

    當我把一個我的函數工作在ajax之後警覺。表刷新和行從我的數據庫中刪除。但是,當我刪除警報我的功能不起作用,表刷新,行仍然存在於表和數據庫。

    在此先感謝。

    +1

    你也可以把這行//放在你的javascript的頂部,window.alert = null; – Satya

    +0

    如果我解決不了問題,請使用它,謝謝。 –

    回答

    3

    您需要防止的點擊默認事件 - 即在頁面每次被重新加載您單擊圖像

    function deleteCat(id){ 
        var dataString = "catId=" + id; 
        $.ajax({ 
         type: "POST", 
         url: "../ajax/categorie_verwijderen.php", 
         data: dataString, 
         success: function(data) { 
           $("#allecat").find("tr:gt(0)").remove(); 
           update_table();     
         } 
        }); 
        return false; // prevent the browser following the href 
    } 
    

    你還需要改變你的HTML上:

    onclick='return deleteCat("+json[i]['id']+"); 
    
    +0

    我已經嘗試過。這是行不通的。 –

    +0

    @GlennVanCauwenbergh更新了我的答案 - 關於將「return」添加到「onclick」調用的最後一點 – ManseUK

    +0

    這樣做的竅門。非常感謝你 ! –

    1

    alert()有助於延遲處理該函數中剩餘的JavaScript。 ajax異步發送數據。異步密鑰爲默認值:true,並且應該在您的調用中將其更改爲false,直到客戶端等待Ajax調用結束。 例如:

    $.ajax({ 
        async:false, 
        url: "test.html", 
        . 
        . 
    
    }); 
    
    +0

    這對我來說很有效,因爲我在'dialog'裏面使用了'button'。由於它是一個按鈕(而不是鏈接),因此默認操作不會導航到URL。這就是爲什麼'preventDefault()'在這裏不起作用。 我真的只是需要等待,直到請求完成,所以設置'async:false'爲我做了。 –

    相關問題