Drupal内置了这个ajax框架。所以,我可以使用像
这样的命令编写回调函数$commands = array();
$commands[] = ajax_command_replace(NULL, theme('status_messages'));
return array('#type' => 'ajax', '#commands' => $commands);
输出然后由Drupal ajax框架以某种方式处理,以最终完成DOM的操作。正如上面的函数_replace
,它基于一些包装器ID替换DOM中的某些东西。
以上代码来自Drupal附带的file
模块。上传新文件时,表单将更新以指示在表单中插入新文件。
正如文件所述,第一个论点可能是NULL
,它可能是selector
。我特别想知道这个file
模块如何计算包装器ID,以便它可以插入DOM元素作为最终结果。
答案 0 :(得分:0)
取自drupal文档页面。
如果该命令是对来自#ajax表单元素的请求的响应,则该值可以为NULL。
在file_managed_file_process函数中,你有upload_button表单元素,它将ajax请求发送到'file / ajax / ...'路径。
ajax_command_replace用于file_ajax_upload()中的ajax回调。因此请求来自upload_button表单元素,在这种情况下,您可以使用NULL而不是选择器。