在jquery UI Sortable中触发“更改”事件时未发送ajax帖子

在jquery UI Sortable中触发“更改”事件时未发送ajax帖子,jquery,ajax,user-interface,jquery-ui-sortable,Jquery,Ajax,User Interface,Jquery Ui Sortable,为了便于阅读,我删掉了部分代码。当通过拖动col_1的子元素触发更改事件时,将执行以下位置函数: $('#col_1').Sortable( { change: positions, } ); 问题是“positions”向服务器发送了一个ajax post,但服务器没有通过: function positions(){ **

为了便于阅读,我删掉了部分代码。当通过拖动col_1的子元素触发更改事件时,将执行以下位置函数:

$('#col_1').Sortable(
                    {
                        change:  positions,
                    }
                );
问题是“positions”向服务器发送了一个ajax post,但服务器没有通过:

function positions(){

   **i've removed some javascript code leading to a javascript variable called "variable" ***

xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
xmlhttp.open('POST', '/positions.php', true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("epositions="+variable);
xmlhttp.send(null);


    return true;
}
因此,帖子不会发送到服务器。但是我注意到如果我把

  $('#col_1').Sortable(
                    {
                            change: function() { positions(); },
                    }
                );
当单击col_1中的childnode的句柄时,会发送ajax post,但元素不能再排序。拥有

   change: function(data) { positions(); },
也不发送ajax请求,尽管元素已排序


我如何克服这个问题?我是做错了什么,还是UI sortable有问题?

我放了一个脚本,可能会对您有所帮助。这是一个完整的示例,请单击此处:


例如,搜索test.php

是的,我明白了,我还有一个疑问,如果不是这样的话,很抱歉

这种怀疑是因为我看不到onreadystatechange在您的代码中的位置

正如您已经知道的,onreadystatechange将调用您喜欢的函数,而不是相反

我不明白为什么

xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
必须在一个函数中,这将使事情重新开始,并在每次调用positions时发现自己在状态中移动,直到4个状态。如果你看我的代码,它是出了功能。在我的代码中,事情是如何分开的这是一个艰苦工作的结果,会对事情产生很大影响

还可以查看如何以及在何处使用onreadystatechange

这就是我想说的:

注意你希望它的XML请求只在一开始就被调用,所以在函数里面看起来不好,如果你考虑变量范围,那就更糟了!!!p> 注意onreadystatechange和其他xml http代码,您希望它出现在您的函数中,所以每次它都会带来新的结果

照顾好美国

如果不是这样的话,我请求理解,答案是没有帮助的

至于jquery,我根本不使用它。

更改回调是否需要返回true;工作?
如果是这样,您可以更新代码以使用change:functiondata{return positions;}

Hi-Melsi。我熟悉如何传递ajax调用,并且在我的网站的其他部分也这样做过。导致上述问题的原因是UI可排序插件的“更改”部分。除非你说问题是因为我在上面的代码中使用了实际的javascript代码而不是jquery造成的,否则我不确定你链接的内容有何帮助。例如,positions在通过其他方式调用时成功地生成了一篇ajax文章,我已经测试过了。它只是通过jQueryUISortable的“更改”部分调用的。