php调用控制器函数对表单中的操作

时间:2013-10-22 14:42:47

标签: php forms function controller call

当我点击“注册表”时,如何在我的班级中调用名为Controller.php的函数注册表。按钮?`

这是我的Index.php文件中的部分。它还有一个'require_once(' Controller.php');'

<form method="POST" action="<?php echo Controller::registreer()?>">
    <button type="submit" class="btn btn-primary">Registreer je</button>
</form>`

和我在Controller.php中的函数:

public static function registreer(){
        header("Location:registreer.php");
        exit();
    }

2 个答案:

答案 0 :(得分:1)

我会说“只是打电话给你的路线”,但似乎你的设计实际上没有任何路线......但我后来才知道。

所以现在你必须

  1. 再次调用脚本,检查调用该站点的方法是否为POST,然后调用Controller方法
  2. 创建第二个脚本,可能称为registreer.php,在提交表单时调用,您可以在其中调用Controller方法
  3. 上面的例子不起作用,因为你基本上是调用你的方法Controller::registreer()并将它返回的结果(如果有的话,在这种情况下没有)插入{{1}来自action标记的属性。

    如果您想要在表单提交时实际调用文件<form>,请将其写入registreer.php属性。


    无论如何,这不是一个相当不错的设计 - 由于你的代码中会有某种 Controller ,这是实际创建路由的最佳实践调用你定义的方法。

    查看this tutorial以了解MVC实际上是什么。

    之后,我建议您使用其中许多MVC框架中的一个。

    我最喜欢的两个是

    • Silex,一个微框架,主要为您提供更改,为您的应用创建快速,轻松的路线
    • Slim,另一个微框架
    • Laravel,很高兴使用框架

    如果您认为自己有这个想法并希望深入了解,请查看“更大”的框架,例如

    • Symfony2,不仅仅是一个MVC框架,附带了一堆额外的组件(称为捆绑包)
    • Zend Framework,另一个

    这些只是许多框架的五个例子。去抓一个。

答案 1 :(得分:0)

你最好只是从控制器获取路径,因为除了发送重定向标头之外你没有真正执行任何操作,这是默认情况下在给出路径时的操作。

此外,您不能echo重定向,这会因为没有字符串回显而导致错误。

如果您知道路径,请手动设置(或通过变量动态设置)如果路径是动态的,请通过对象本身的getter和setter检索它。