2016-12-20 172 views
-2

我使用下面的ajax腳本在重新排序行(它工作正常)後發回數據。我沒有收到alert(data)中的任何內容,只要拖放該行即可顯示。它應該告訴我它試圖傳遞給'refresh_order.php'文件的內容。Ajax不發送PHP POST數據

我不是jQuery或ajax專家 - 我在網上發現了這一點的代碼,第一部分爲我工作(拖放),但我不知道發佈數據的ajax有什麼問題到MySQL。

我需要做些什麼來解決這個問題?

$('tbody').sortable({ 
    cancel: ":input,button,[contenteditable]", 
    axis: "y", 
    update: function (event, ui) { 
     var data = $(this).sortable('serialize'); 

     alert(data); // Sent to server 

     $.ajax({ 
      data: data, 
      type: 'POST', 
      url: 'refresh_order.php', 
      success: function(response) { 
      // alert(response); // Server response 
      } 
     }); 
    } 
}); 

[我已經瀏覽了Stack Overflow的大部分帖子,並沒有看到任何有助於我的情況。我甚至嘗試接觸到誰給我的代碼,但尚未收到回覆的人]

+2

好了,你的問題之前,$就開始,這意味着**,這不是一個AJAX問題**? –

+1

問題更可能是您沒有正確檢索數據,而不是AJAX問題。你確定'update'事件處理程序中的'this'引用了正確的元素嗎? –

+0

如果這也是數據庫相關的問題,你應該發佈它的代碼,包括html –

回答

0

the documentation

注:如果序列化返回一個空字符串,確保ID屬性包含一個下劃線。它們的格式必須是:「set_number」例如,具有id屬性「foo_1」,「foo_5」,「foo_2」的3元素列表將序列化爲「foo [] = 1 & foo [] = 5 & foo [] = 2" 。您可以使用下劃線,等號或連字符來分隔組和數字。例如,「foo = 1」,「foo-1」和「foo_1」全部序列化爲「foo [] = 1」。

我假設你的tr元素以適當的格式缺少id屬性。這裏有一個工作示例:

<table> 
    <tbody> 
    <tr id="tr_1"> 
     <td>r1c1</td> 
     <td>r1c2</td> 
    </tr> 
    <tr id="tr_2"> 
     <td>r2c1</td> 
     <td>r2c2</td> 
    </tr> 
    </tbody> 
</table> 

$('tbody').sortable({ 
    cancel: ":input,button,[contenteditable]", 
    axis: "y", 
    update: function(event, ui) { 
    var data = $(this).sortable('serialize'); 
    console.log(data); 
    } 
}); 

https://jsfiddle.net/bwxmfzs5/

+0

解決我的問題的部分是將'