【问题标题】:Is it possible to use Jquery AJAX with PHP using MVC architecture? [closed]是否可以使用 MVC 架构将 Jquery AJAX 与 PHP 一起使用? [关闭]
【发布时间】:2015-12-11 13:22:46
【问题描述】:


问题是我最近发现了 MVC,我想移植我当前的项目以使用 MVC 架构。我当前的项目使用 Jquery AJAX 来处理大部分调用,我不想只是废弃我的 js 代码。我几乎是一个初学者,所以我想知道如果我遵循 MVC 架构,是否可以将 Jquery AJAX 与 PHP 一起使用。如果有我将如何处理它。我也知道预先编写的框架,但如果我为第一个项目编写自己的代码,我发现这些概念更容易理解。

【问题讨论】:

  • 大声笑!如果没有人不能在 MVC 架构中使用 Javascript 或 Jquery,MVC 就不会存在! :p
  • 啊,我想。我将如何实施它? AJAX 会调用控制器还是单独的 php 文件?
  • 是的,你可以处理来自控制器的ajax请求
  • 你应该让 ajax 到控制器在那里输出,或者如果有 html 需要也使用控制器+视图组合来输出 html sn-ps
  • 甜蜜的事情真的解决了谢谢大家!现在我只需要弄清楚如何实现它:P。

标签: javascript php jquery ajax model-view-controller


【解决方案1】:

当然可以。 我通常在我的项目中创建文件夹,例如:Model、View、Static 和两个 PHP 文件 index.php 和 Controller.php。我最近还发现,最好为每个类创建一个控制器,但我认为对于小型学习项目,一个控制器就足够了,即使对于更大的项目,它也不违背 MVC 理念。 所以假设你有一个 html 表单,你想从那里注册新的 Note。

notes.html

<form method="POST" action="Controller.php">
    <input type="text" class="form-control" name="title"/>
    <input type="text" class="form-control" name="description"/>
    <input type="Button" value="Add" onclick="addNote();"/>
</form>

ajax.js

function addNote()
{     
    var formElements = document.querySelectorAll(".form-control");
    var formData = new FormData();
        formData.append("Code", "1");
        formData.append("Sequence", "1");
    for(var i = 0; i < formElements.length; i++)
        formData.append(formElements[i].name, formElements[i].value);
    var xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = function()
        {
            if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
            {
                //doSomething
            }
        }
        xmlHttp.open("POST", "Controller.php");
        xmlHttp.send(formData);
}

Controller.php

<?php
    if(!empty($_POST["Code"] && !empty($_POST["Sequence"]))
    {
        if($_POST["Code"] == "1")
        {
            switch($_POST["Sequence"])
            {
                case 1:
                    $noteObj = new Note();
                        $noteObj->create($_POST);
                    break;
            }
        }
    }
?>

然后您将创建带有私有字段、访问器等的 Note 类。主要思想是划分代码并使其易于管理,这意味着您可以在不更改后端的情况下更改用户界面,因为您拥有控制器和类,它们将向所有请求返回结果,即使您从命令行工具发送请求,例如作为卷曲。 MVC 就像它的主要目标和想法一样简单。它提高了代码的可重用性和灵活性,帮助您更好地监控和按顺序升级。

【讨论】:

  • 如果您有任何问题,可以在这里查看我的一个项目:github.com/DavidDeme/NBGRSS
  • 我不认为提出问题的人要求提供任何类型的源代码......
  • 谢谢,感谢您抽出宝贵的时间。终于明白了哈哈哈。
  • @PavDis 如果我的帖子帮助您解决了问题,那么您应该标记我的帖子:)))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多