0

虽然我找不到适合这种需要的标题,但问题就在这里。

我有一个名为 Files 的现有模块。当我使用这个模块时,一些 javascript 运行并为不同类型的文件创建拇指。它在窗口负载下运行。
现在我正在开发一个名为 File Links 的模块。
在这个模块中,我需要在 Windows 加载时创建拇指。
我已经从 Files 模块复制了代码。
这是一些代码

public function folder_contents()
{
    $parent = $this->input->post('parent');
    echo json_encode(Files::folder_contents($parent));
}

这需要来自 ajax 请求的父参数并获取文件夹内容。
我想显示所有文件。为此,我创建了另一种获取所有文件的模型方法。
现在的问题是,在加载 ajax 请求的文件链接模块中运行并点击上述方法。这是我尝试过的

public function folder_contents()
{
    $parent = $this->input->post('parent');
    $modules    =   $this->router->fetch_module();

    if($modules == 'files'){
        echo json_encode(Files::folder_contents($parent));
    }else{
        echo json_encode(Files::getAllFiles());
    }
}

在这种方法中,如果不是文件,我将检查模块名称,然后获取所有文件,但是当调用此方法时,模块始终是文件。此方法位于文件控制器中。另一件事是我不想写 ajax 请求来指向其他地方,因为它是 pre-maid 并且效果很好。
现在我如何设置一些让 getAllFiles() 运行的条件。

4

1 回答 1

0

模块总是显示为“文件”的原因是,无论哪个模块触发了 ajax 请求,ajax 请求都会调用 Files 模块。这是一个单独的请求。

要使其正常工作,您可以使用 $parent 值来确定是要返回所有文件还是只返回具有特定父文件夹的文件。如果您从自定义 ajax 调用中删除 POST 值,则 folder_contents() 将返回所有文件,如下所示。

public function folder_contents()
{
    $parent = $this->input->post('parent');

    if($parent){
        echo json_encode(Files::folder_contents($parent));
    }else{
        echo json_encode(Files::getAllFiles());
    }
}

由于默认的 ajax 调用 POST 文件夹 ID,因此它仍将仅返回该文件夹中的文件。

于 2013-01-25T02:46:23.410 回答