我正在构建一个基于Drupal的网站,需要将节点ID传递给单独的Web服务。这个Web服务处理文件上传到一个单独的服务器(从一个Drupal开启)。可能使用多步表单保存节点?
这会产生一个问题,如果我创建一个新节点,则在提交表单之前不会生成节点ID - 这意味着我无法附加这些文件,直到我保存节点并将其打开并重新编辑为止。我想删除该步骤。
是否有可能创建一个两步节点创建过程,其中节点的基础知识被提交并保存,然后表单重新指向第二步,在这里我可以附加文件?
我也会考虑启用AJAX的节点提交表单 - 但这似乎会增加更复杂的情况。
任何意见,例子将不胜感激!
+1添加第二个提交回调 – 2009-10-14 17:58:01
由于第二个提交回调已经可以访问'$ form_state ['nid']'中的nid,它也可以将$ form_state ['redirect']'改变为'node/[nid]/edit在提交后立即再次打开节点编辑表单(在第二次表单提交后需要检查新节点以防止重定向)。 – 2009-10-14 18:05:19
谢谢!我已经构建了多步表单(连接到标准节点添加/编辑表单)。仍然努力争取$ form_state变量不被传递给我的验证器函数 - 我发现的例子都没有显示这个变量是如何传递的。 – PrairieHippo 2009-10-14 22:47:35