在使用Dedecms自定义表单时,用户可能会遇到提交后直接跳转到表单列表页的问题。那么如何实现提交后跳转到上一页呢?本文将为您详细解答。
首先,我们需要了解Dedecms自定义表单的工作原理。Dedecms的自定义表单模板路径通常为/templets/.../plus/post_diyform.htm。在这个模板中,我们可以根据需求修改表单的样式和功能。
以下是表单的基本HTML代码结构:
<form method="post" enctype="multipart/form-data" action="/plus/diy.php" onsubmit="return checkpost();" name="myform">
<input type="hidden" name="action" value="post" />
<input type="hidden" name="diyid" value="1" />
<input type="hidden" name="do" value="2" />
<input type="hidden" name="dede_fields" value="name,text;tel,textchar;message,multitext;yydate,textchar" />
<input type="hidden" name="dede_fieldshash" value="ffb12dc337564ab8f0405b8147cf49b7" />
</form>
接下来,如果是在首页或其他页面通过iframe调用表单,我们需要设置发布成功后的跳转页面。这需要修改/plus/diy.php文件中的相关代码。
具体修改如下:
if($dsql->ExecuteNoneQuery($query)) {
$id = $dsql->GetLastID();
if($diy->public == 2) {
// 修改为跳转到上一页
$goto = $_SERVER['HTTP_REFERER'];
$bkmsg = '发布成功,现在返回上一页...';
} else {
$goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/plus/diy.php?action=post&diyid=1';
$bkmsg = '发布成功,请等待管理员处理...';
}
showmsg($bkmsg, $goto);
}
以上代码中,我们通过$_SERVER['HTTP_REFERER']获取用户的上一页地址,并将其赋值给$goto变量,从而实现提交后跳转到上一页的功能。
最后,确保您的服务器环境支持PHP的$_SERVER['HTTP_REFERER']变量。如果遇到问题,可以检查服务器配置或手动指定跳转地址。
通过以上步骤,您可以轻松实现Dedecms自定义表单提交后跳转到上一页的需求。
希望这篇文章对您有所帮助!如果您还有其他问题,请随时提问。