Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php在表单中的操作上调用控制器函数_Php_Forms_Function_Controller_Call - Fatal编程技术网

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

php在表单中的操作上调用控制器函数,php,forms,function,controller,call,Php,Forms,Function,Controller,Call,当我点击“registerer je”按钮时,如何在名为Controller.php的类中调用函数registerer` 这是我的Index.php文件中的部分。它还有一个“require_once('Controller.php');” 您最好只从控制器获取路径,因为您不是真正执行任何操作,而是发送重定向头,这是给定路径时默认操作所做的操作 您也不能echo重定向,这会由于没有要回显的字符串而导致错误 如果您知道路径,请手动(或通过变量动态)设置它。如果路径是动态的,请通过对象本身中的gett

当我点击“registerer je”按钮时,如何在名为Controller.php的类中调用函数registerer`

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


您最好只从控制器获取路径,因为您不是真正执行任何操作,而是发送重定向头,这是给定路径时默认操作所做的操作

您也不能
echo
重定向,这会由于没有要回显的字符串而导致错误

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

我会说“只需调用您的路由”,但您的设计似乎实际上没有任何路由……但我稍后会谈到这一点

所以现在你必须

  • 再次调用脚本,检查调用站点的方法是否为POST,然后调用控制器方法
  • 创建第二个脚本,可能称为
    registerer.php
    ,在提交表单时调用该脚本,在其中调用控制器方法
  • 上面的示例不起作用,因为您基本上是在调用方法
    Controller::registerer()
    ,并将从该方法返回的结果(如果它有,在本例中它没有)插入到
    标记的
    action
    属性中

    如果您想要在表单提交时调用文件
    registerer.php
    ,只需将其写入
    操作
    属性即可


    无论如何,这不是一个很好的设计-由于您的代码中将有某种控制器,因此最好实际创建调用您定义的方法的路由

    看一看,了解一下MVC到底是什么

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

    我最喜欢的两个是

    • ,一个微框架,主要为您提供更改,以便为您的应用程序创建快速、轻松的路由
    • ,这是另一个微观框架
    • ,很好用的框架
    如果你认为你已经有了这个想法并且想更深入,那么看看“更大”的框架,比如

    • ,而不仅仅是一个MVC框架,还附带了一系列附加组件(称为bundle)
    • ,另一个

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

    这是一个框架还是你想自己组装的某个MVC?应用程序如何路由URL?
    <form method="POST" action="<?php echo Controller::registreer()?>">
        <button type="submit" class="btn btn-primary">Registreer je</button>
    </form>`
    
    public static function registreer(){
            header("Location:registreer.php");
            exit();
        }