我有复杂的问题。 我正在使用Prestashop模块上的jquery选项卡。我的插件页面上有以下标签:
在每个标签页面中,我都有我的插件和保存按钮的输入。如果我在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();
}