我有一个名为FormController的PHP类,该类的构造函数当前验证一些$ _POST变量,如果未全部设置则抛出异常。 FormController最终应返回下一页的地址。
因此,我的PHP页面将类似于:
session_start();
try {
// controller needs certain variables set in the $_POST
// superglobal to work properly.
$controller = new FormController();
echo $controller->nextPage();
} catch(Exception e) {
// Handle exception here
}
我的JavaScript代码(jQuery):
$.post('next_page.php', {
form_variant: form_variant,
person: person,
last_page: last_page,
direction: "forward"
},
function(data) {
var response = JSON.parse(data);
window.location = response.new_page;
});
从javascript初始化POST请求就可以了,但是我也正在处理一些旧代码,因此需要从表单控制器获取新的页面地址,但是我不知道如何调用FormController,因为这需要使用$ _POST变量。
一种折衷方案是,在构造FormController之前,我可以让表单控制器接受常规参数并验证所有发布请求。这样,我可以从PHP页面构造它。
很抱歉这个问题的长度,但是谁能告诉我如何在PHP页面中发出POST请求?或者,即使有更好的方法可以进行设计?
非常感谢
最佳答案
在您的formController中,允许使用传递的数组覆盖发送的$ _POST var:
public function __constructor($data = array())
{
if(!sizeof($data))
{
$data = $_POST;
}
}
然后在需要时直接发送:
$controller = new FormController($data);