【问题标题】:stuck with php forms坚持使用php表单
【发布时间】:2012-06-19 11:34:29
【问题描述】:

我正在开发一个 php 网站; 我没有使用纯面向对象的代码,因为我仅将类用于我的查询和函数,但我尝试使用 MVC 方法为 html 提供一些干净的视图代码。 一切正常,因为我将“业务逻辑”和视图分开,逻辑都在我的“控制器”文件夹中,而不是将所有变量传递给显示的视图。

我被表格困住了。

我通过上述方法传递了表单使用的变量,但是,表单操作呢?我应该在控制器文件中传递 $_POST 数据。

如果检索到“操作”$_GET,则会出现我的管理员视图:

switch ($action) { 
    default:
        break;
    case "npr":
        require "controller/admincontents/inner/newproject.php";
        break;
    case "mpr":
        require "controller/admincontents/inner/modifyproject.php";
        break;
    case "dpr":
    require "controller/admincontents/inner/deleteproject.php";
    break;
}

然后我转到调用我的表单的 newproject.php。

<?php 
require "views/adminviews/forms/insnuovoprogetto.php";
?>

表单有一个动作,但动作必须指向哪里?我想执行确认视图和成功视图,但我不能将它们放在同一页面中。

如果我不使用这种方法,我可以使用 isset($_POST) 函数来打开和关闭表单、确认和成功。

您能否将我重定向到在 MVC 中用于表单的方法?

【问题讨论】:

  • "逻辑都在我的"控制器"上"这听起来不像 MVC

标签: php forms model-view-controller


【解决方案1】:

按照MVC结构,

  1. 控制器由 Url 参数决定 ($_GET)
  2. 同理,视图文件也需要根据控制器进行渲染。您可以创建 setLayout 或 setView 之类的函数来呈现您的视图文件
  3. 您必须根据控制器手动提及您的表单操作

【讨论】:

    【解决方案2】:

    最好使用任何 MVC 框架而不是创建自己的代码。您可以使用 php 框架,如 codeigniter、cakePHP 和 Zend Framework。首先尝试了解这些框架是如何运作的,然后开始开发自己的框架。我个人认为 Codeigniter 是初学者学习 MVC 方法的最佳平台。

    【讨论】:

    • 很遗憾,我没有时间去做。我必须在两周内完成该网站。我回到“一个文件”和 action='' 方法,使用 if else issets。
    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    相关资源
    最近更新 更多