通常,使用 URL 来确定应该发送给客户端的内容更容易。如果您的问题是通过 a 提交的,<form>
您可以在保存答案后将重定向返回到下一个问题。例如,如果这是您的问题之一:
<form action="/questions/14" method="post">...
这将提交到/questions/14
,一旦您保存了答案,您就可以重定向到问题 15:
header('Location: /questions/15');
exit;
一旦你有了 URL,你就可以将你的前端控制器分成与每个问题相关的部分。那么你所需要的只是一些路由:
if(preg_match('/\/questions\/([0-9]+)/',$_SERVER['REQUEST_URI'],$matches) > 0)
{
$question_num = (int)$matches[1];
if(!in_array($question_num, $valid_questions)) {
// return 404
}
$controller_name = 'Question_' . $question_num;
return new $controller_name;
}
else // check for urls that aren't questions ...