我有一个名为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);

09-18 04:26