如何通过标头位置(或之前)传递信息

时间:2015-05-01 12:44:34

标签: php prestashop

我有复杂的问题。 我正在使用Prestashop模块上的jquery选项卡。我的插件页面上有以下标签:

enter image description here

在每个标签页面中,我都有我的插件和保存按钮的输入。如果我在Footer,我会点击我的保存按钮,然后页面刷新,保存更改,然后我在第一个标签(General)而不是Footer。 我找到了解决方案。每次SAVE后我都在使用

return header("Location: ".$moduledir.'#'.$tab);

其中$tab = 'tabname'$moduledir = plugin url。在F5页面刷新后重新提交表单之前,标题位置保护我。但它也没有效果,因为我还需要在保存例如“配置更新”或某些错误之后传递一些信息。

public function Output($tab,$outputmessage=null)
{
    $moduledir = $_SERVER['PHP_SELF'].'?controller=AdminModules&token='.Tools::getAdminTokenLite('AdminModules').'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name;

    if ($tab == null)
    {
        return $this->RenderConfig(); # This method displays my plugin
    }
    else
    {
      # I don't know how to also pass by header location my
      # $outputmessage variable which contains
      # information to display. Normally I would use
      # return $outputmessage.$this->RenderConfig();
      # but then it's always brings me to tab general
      return header("Location: ".$moduledir.'#'.$tab);
    }
}

我知道可能有更好的方法来做到这一点,但我不知道怎么做。 请伙计们,给我一些提示,因为我现在很蠢,不知道如何解决这个问题。

//编辑

我想我找到了解决办法,但现在我并不是百分百肯定。

public function Output($tab,$display=null)
{
    $tab = '<script>parent.location.hash = "'.$tab.'";</script>';
    return $tab.$display.$this->RenderConfig();
}

0 个答案:

没有答案