Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 《圣经》”;可排序的。创建();方法在进行AJAX调用以更新无序列表后不起作用_Php_Javascript_Ajax_Prototypejs_Scriptaculous - Fatal编程技术网

Php 《圣经》”;可排序的。创建();方法在进行AJAX调用以更新无序列表后不起作用

Php 《圣经》”;可排序的。创建();方法在进行AJAX调用以更新无序列表后不起作用,php,javascript,ajax,prototypejs,scriptaculous,Php,Javascript,Ajax,Prototypejs,Scriptaculous,这是我使用该网站两年后的第一篇stackoverflow帖子,所以请不要释放猎犬 我试图创建一个网站的“编辑我的个人资料照片”部分,用户可以(1)添加个人资料照片;(2) 删除个人资料照片;(3)重新排列她的个人资料照片 从数据库的角度来看,每个用户仅限于五张个人资料图片。因此,my users表中有image0、image1、image2、image3和image4的字段 添加照片很简单,但我在删除和重新排序照片时遇到了一个奇怪的问题 为了对照片重新排序,我使用了prototype/scrip

这是我使用该网站两年后的第一篇stackoverflow帖子,所以请不要释放猎犬

我试图创建一个网站的“编辑我的个人资料照片”部分,用户可以(1)添加个人资料照片;(2) 删除个人资料照片;(3)重新排列她的个人资料照片

从数据库的角度来看,每个用户仅限于五张个人资料图片。因此,my users表中有image0、image1、image2、image3和image4的字段

添加照片很简单,但我在删除和重新排序照片时遇到了一个奇怪的问题

为了对照片重新排序,我使用了prototype/scriptaculous“sortable.create()”方法。具体地说,我在一个 无序列表

对任何列表元素重新排序都会进行ajax调用,在相应的php脚本中,我会对图像进行适当的重新排序(例如,以前的image0将被重新排序) 现在在数据库中写入image2等)

然后,我将更新后的无序图像列表重新创建为HTML

最后,在处理ajax javascript函数中(即,如果ajax.status==200和ajax.readyState==4), 我调用sortable.create方法再次对新的无序图像列表进行排序

上面提到的方法绝对有效。现在是脑筋急转弯:

无序列表中的每个列表元素还包含一个用于删除特定图像的链接。
想象一下一张照片列表,在无序列表中的每张照片下都有一个“删除这张照片”链接

下面是HTML的大致外观:

  <ul id="profile_pics" onmouseup="reorder_photos();">
     <li id="0"><img src="images/image0.jpg"><a href="?delete_id=0" onclick="return false;" onmouseup="stopPropagation(event); delete_photo('image0');">delete this photo</a></li>
     <li id="1"><img src="images/image1.jpg"><a href="?delete_id=1" onclick="return false;" onmouseup="stopPropagation(event); delete_photo('image1');">delete this photo</a></li>
     <li id="2"><img src="images/image2.jpg"><a href="?delete_id=2" onclick="return false;" onmouseup="stopPropagation(event); delete_photo('image2');">delete this photo</a></li>
  </ul>
请注意,单击“删除此照片”链接将调用delete_photo函数,但由于调用了stopPropagation()函数,因此不会涉及reorder_photos函数

delete_photo函数对PHP脚本进行AJAX调用,该脚本(1)删除有问题的照片,(2)进行适当的数据库调整,(3)重新创建无序列表。ajax处理函数然后调用sortable.create() 使此新无序列表可排序

问题是新的无序列表不可排序

使这个问题更加奇怪和混乱的是,当我在ajax处理函数中调用另一个scriptaculous方法,如“$('profile_pics').fade({duration:2.5}”);”时,它确实起作用

为什么??为什么?为什么?


任何帮助都将不胜感激。如果示例代码有帮助的话,我可以发布这篇文章——我只是不想让这篇文章比现在更加百科全书化。

当页面上的内容被替换时,事件处理程序也会随之更新。在AJAX调用之后,您需要重新初始化您的可排序表。

当页面上的内容被替换时,事件处理程序将随之进行。您需要在AJAX调用后重新初始化您的排序表。

您好,谢谢您的回复。我确实在新的HTML中添加了事件处理程序,然后在处理ajax函数中调用了sortable.create()。sortable.create()不起作用,但当我尝试其他方法(如使无序列表可褪色)时,确实起了作用。这有用吗?我可以张贴代码,如果这将有帮助。再次感谢您的回复,这在过去的一周里让我抓狂。您可能必须先销毁原始的可排序表。是的,我尝试过--调用sortable.destroy(),然后尝试sortable.create()。不过再次感谢。另外,我不知道这是否会引起社区的愤怒,但有没有办法在这个网站上“雇佣”一个人来查看这些东西?我真的需要处理好这件事,而且我不介意把钱花出去。基本问题可以减少到200行代码,max.希望闪电不会击中我意识到这已经超过一年了,而且。。。现在有一个赏金系统来处理你问的第二个问题。嗨,迪奥多斯,谢谢你的回复。我确实在新的HTML中添加了事件处理程序,然后在处理ajax函数中调用了sortable.create()。sortable.create()不起作用,但当我尝试其他方法(如使无序列表可褪色)时,确实起了作用。这有用吗?我可以张贴代码,如果这将有帮助。再次感谢您的回复,这在过去的一周里让我抓狂。您可能必须先销毁原始的可排序表。是的,我尝试过--调用sortable.destroy(),然后尝试sortable.create()。不过再次感谢。另外,我不知道这是否会引起社区的愤怒,但有没有办法在这个网站上“雇佣”一个人来查看这些东西?我真的需要处理好这件事,而且我不介意把钱花出去。基本问题可以减少到200行代码,max.希望闪电不会击中我意识到这已经超过一年了,而且。。。现在有一个赏金系统来处理你问的第二个问题。