MVC模式和$ _POST变量

时间:2009-12-20 10:55:34

标签: php model-view-controller forms

我正在构建一个基于php / mysql的框架和cms,我不得不使用post方法从位于一个控制器中的表单传递给另一个控制器。更确切地说,我构建了一个用于更改语言的表单。此表单位于localhost / index / index中,当我选择一种语言时,它转到http://localhost/application/change_language,其中change_language是应用程序类中的公共函数。问题是来自那个表单的$ _POST变量,没有通过,改变了change_language函数。我在这个函数中var_dump-ed整个$ _POST树,我得到的只是array(0){}。我做错了什么,或者为什么这不起作用?对不起我的英语不好 。干杯

3 个答案:

答案 0 :(得分:0)

听起来您可以使用会话来传输数据。我用CodeIgniter遇到了这个问题并发布了数据。我用帖子数据创建了一个会话,就像一个冠军。

答案 1 :(得分:0)

可能是各种各样的问题,最好在这里发布一些代码,这样我们就可以看看有什么不对,而不是盲目地猜测可能出现的问题。

虽然初看起来,但听起来你没有正确地将表单值发布到函数change_language。请检查表格是否正确。您可能需要查看this

答案 2 :(得分:0)

在MVC的角度来看,表单应该在View而不是Controller中。所以我建议你把表单放在View中,然后将表单的action属性指定给Controller,它将处理这样的表单请求:

<form name="myform" method="post" action="index.php/your_controller">
.... more stuff here
</from>

现在您为your_controller Controller编写代码来处理表单请求:

class your_controller extends whateverparentcontroller
{
    print '<pre>';
    print_r($_POST);
}