2012-12-19 95 views
1

我有一个全功能dynatree,其中数据通过ajax(数据库源)获取加载,现在我启用了对树的拖放功能。当一个项目被删除时,我做了一个Ajax请求来更新数据库,以便更新节点数据。但我在php中做了几次检查,看看是否允许节点放在它的“新位置”上。撤消项目的拖放

如何恢复节点的原始位置如果php拒绝节点被丢弃的新位置?完整的树重新加载是可能的,但我想避免这种情况,只是恢复特定的项目。

+0

你能保存该项目的位置和然后重新分配它,如果它被PHP拒绝? – rae1

回答

1

好吧,我找到了一个正确的方法来做到这一点。我只是做我的ajax请求到PHP,但将其设置为同步(async false),所以dynatree代码将等待结果。然后,我实现了周围dynatree的移动功能的检查:

$.ajax({ 
     url: "xxx, 
     async: false, 
     success: function(data){ 
      if(data.error == 0){ 
       showModalOk(data.message); 
       phpres = true; 
      }else 
       phpres = false; 
      } 

     } 
    }); 

if(phpres == true){ 
    sourceNode.move(node, hitMode); 
    node.expand(true); 
} 

这样的节点只有当它允许被感动,所以没必要恢复节点之后