2016-03-15 44 views
0

我在PHP中MVC是新的,我有一个关于如何使用JavaScript的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

+0

结帐这个https://www.cs.colorado.edu/~kena/classes/7818/f06/lectures/19/arch.png – Vigikaran

+0

您可以使用JavaScript将数据发送到一个API(视图MVC),它会返回结果。您无法使用JavaScript与控制器或模型进行通信。 – Vigikaran

+0

所以你的意思是我使用第二种方法,发送数据到页面并更新它没有mvc? –

回答

1

对不起,我不能随便评论你的问题尚未

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

在你的情况下,你有两种选择来显示数据在视图中:返回一个JSON在你的PHP处理它与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; 
    } 

} 
+0

所以我应该把更新方法放在同一个页面控制器中?当我发送数据时,创建一个新的对象并使用方法更新? –

+0

thx很多!我现在明白了,但有时候我觉得MVC让应用很复杂 –

+0

看我的编辑。我假设你的控制器已经在处理这个帖子 – Kezzbr