2016-12-20 119 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

解决我的问题的部分是将'