2012-08-27 102 views
0

一點一滴我一直在轉換PHP的Web應用程序,我正在致力於JQuery的AJAX表單提交。使用jquery和PHP刪除MySQL行

我正在處理的當前工作是刪除表格行。我認爲這是我的javascript問題,因爲即使使用return false;,它也會繼續進行頁面刷新。這是我創建對象的表單時遇到的問題,但是得益於本網站的一些幫助,我得到了排序,現在它已完全運行。

這裏是我的javascript:

$("form#table_customer").submit(function() { 
     var query_string = 'page=customer&rows='; 

     $(":checked").each(function() { 
      query_string += this.value + "-"; 
     }); 

     $.ajax({ 
      url: "inc/deletesql.php", 
      type: "POST", 
      data: query_string, 
      cache: false, 
      success: function(data){ 
       $('#maincontent').load('inc/showObjects.php?o=customer'); 
      } 
     }); 
     return false; 
    }); 

的PHP文件(deletesql.php)可以用於正常的POST的提交。但我似乎無法讓它通過ajax發佈數據。

您可以在http://www.sfyfe.com/studioadmin/index.php?i=customer

+0

警報成功data..to檢查是否其工作與否 – swapnesh

+0

什麼是AJAX運行最終查詢請求。你檢查查詢嗎? –

+0

你知道'rows'會像'1-3-5-'一樣'''結尾是'-' ..? –

回答

0
$('#maincontent').load('inc/showObjects.php?o=customer'); 
    ... 
    // at this point form#table_customer doesn't exist yet in the DOM 
    // so this binding a handler will give no effect 
    $("form#table_customer").submit(function() { 
      .... 
    }); 

看到它在上下文中代替試試這個:

// make the load reusable 

function addDeleteHandler() { 
    // handle the load event 
    // attach the event handler everytime the content is loaded, 
    // and the form#table_customer is added to the dom 
    $('#maincontent').load('inc/showObjects.php?o=customer', function() { 
     $("form#table_customer").submit(function() { 

      var query_string = 'page=customer&rows='; 

      $('input[name="checkbox"]:checked').each(function() { 
       query_string += this.value + "-"; 
      }); 

      $.ajax({ 
       url: "inc/deletesql.php", 
       type: "POST", 
       data: query_string, 
       cache: false, 
       success: function(data){ 
        addDeleteHandler(); 
       } 
      }); 

      return false; 
      }); 
     }); 
    } 

    addDeleteHandler(); 
+0

完美。 ajax函數現在正在工作,我用一些警報測試了它。但它不會將數據提交給php文件。我可以手動輸入url來刪除特定的行,但jquery函數不會提交它。 –

+0

我注意到你正在調用$('#maincontent').load()不僅一次。每次調用$('#maincontent')。load()時,都需要綁定提交處理程序。你可以用'addDeleteHandler(){...}'來包裝它,這樣你就可以重用它。然後,不要調用'$('#maincontent')。load('inc/showObjects.php?o = customer');'每次調用'addDeleteHandler();'。 – timidboy

+0

你可以檢查AJAX是否真的在你的Chrome瀏覽器中工作,開發者工具>網絡 – timidboy