【问题标题】:Javascript with Php MVC带有 PHP MVC 的 Javascript
【发布时间】:2016-03-15 12:07:52
【问题描述】:

我是 PHP MVC 的新手,我有一个关于 javascript 如何与 php mvc 一起工作的问题

如果我有一个带有按钮的页面,当用户单击该按钮时 它将发送到下一页并更新数据库中的数据

$(document).ready(function(){
    $("#btn").click(function(){
        $.load(){...   }    
        or $.post(){.....}//post data to another page
    });
});

//next page
if(isset($_POST[])){
  //update data
}

我的问题是

我应该将此数据发送到控制器而不是传递给模型并在视图中输出(如果我们需要响应)

Button --javascript--> controller -> model(update data) --send data back--> view

我可以在没有 mvc 的情况下将数据发送到页面并更新

【问题讨论】:

  • 您可以使用 javascript 将数据发送到 API(在 MVC 中查看),它会返回结果。您无法使用 javascript 与控制器或模型进行通信。
  • 所以你的意思是我使用第二种方法,将数据发送到页面并在没有 mvc 的情况下更新它?
  • PHP MVC 不会影响 javascript。 Javascript 完全独立于您的 php 代码。如果您使用的是 php,您可以使用 json 数据响应 javascript 并更新您的客户端视图。
  • 从 repository->Model 收到所需数据后,您可以在 php Controller 中创建 HTML 输出,并使用 ob_start() 缓冲输出,然后使用 ob_get_contents() 获取变量中的完整输出,以便您可以回显它。在 javascript 中,您可以使用输出容器的 .innerHTML 将其放入文档中

标签: php model-view-controller


【解决方案1】:

抱歉,我还不能评论你的问题

您的第一种方法是正确的。建议您更新模型中的数据。同时,所有的SQL语句或ORM句柄都应该在上面。

在您的情况下,您有两个选项可以在视图中显示数据:在您的 php 中返回 JSON 并使用 javascript 处理它,并在更新数据后直接加载您的视图。这取决于您的所有项目是如何构建的。

我可以写一些例子,但你需要给代码一些平静。

// In your controller
if(isset($_POST)){

    $obj = new MyObject();
    $obj->name = $_POST['name'];
    $obj->date = date("Y-m-d");
    $obj->validatePost();
    $obj->update();

    $result = $obj->getData();
    return $result;

}


// Your model
class MyObject {

    public $name;
    public $date;

    public function validatePost(){
        if($this->name == null){
            // print error
        }
    }

    public function update(){
        // database cheets
    }

    public function getData(){
        return $json;
    }

}

【讨论】:

  • 那么我应该把更新方法放在同一个页面控制器中吗?当我发送数据时,创建一个新对象并使用方法更新?
  • 非常感谢!我现在明白了,但有时我觉得 MVC 让应用程序变得非常复杂
  • 查看我的编辑。我假设您的控制器已经在处理帖子
  • 我可以肯定地说。但是 generali、js、css 和 images 保存在“公共”文件夹中。
  • OK thx a lot!,我刚刚做了一些测试,我放入了 app 文件夹,但如果我的 htaccss 全部拒绝,它将无法正常工作,所以请保留在公共文件夹中
猜你喜欢
  • 2011-07-20
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 2018-08-23
  • 1970-01-01
相关资源
最近更新 更多