Javascript MVC模式结构(在哪里以及如何?)
我在网上学习编程已经有三年了。这段时间我开发了一个大项目,但我有一个问题。我不知道MVC模式,也不知道如何说“从头开始编程”。现在我的代码乱七八糟,没有人能理解,只有我 我发现了这个MVC模式,这是一件很棒的事情,但现在我不知道在哪里以及如何做这两件事。我如何理解没有php代码可以查看?模型中没有html/css 例如,我必须在哪个结构中实现javascript和ajax代码?(这是风景吗?) 在何处以及如何管理显示if?比如:Javascript MVC模式结构(在哪里以及如何?),javascript,php,model-view-controller,Javascript,Php,Model View Controller,我在网上学习编程已经有三年了。这段时间我开发了一个大项目,但我有一个问题。我不知道MVC模式,也不知道如何说“从头开始编程”。现在我的代码乱七八糟,没有人能理解,只有我 我发现了这个MVC模式,这是一件很棒的事情,但现在我不知道在哪里以及如何做这两件事。我如何理解没有php代码可以查看?模型中没有html/css 例如,我必须在哪个结构中实现javascript和ajax代码?(这是风景吗?) 在何处以及如何管理显示if?比如: if($user_id == $me){ //displa
if($user_id == $me){
//display post with delete option
}else{
//display post
}
我有一个函数,有很多行和if。例如,我的一个函数。我想了解如何在MVC模式中复制它
public function selectUserPosts(){
try{
require_once('Class.Users.php');
$user = new USER();
$id = $_GET['id'];
$stmt = $this->conn->prepare("SELECT * FROM fun_posts WHERE addedby=('$id') ORDER BY date DESC");
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $post){
?>
<div class="col-sm-4">
<div class="animated flipInY" id="panel_<?php echo $post['id'];?>">
<div class="thumbnail" style="height:300px;">
<a href="/Web/Pages/Fun/Fun_Post.php?action=select&image_id=<?php echo $post['id'];?>" target="_blank">
<img class="img" style="width: 100%; height:150px;" src="<?php echo $post['image']; ?>" alt="" />
</a>
<i class="fa fa-clock-o" aria-hidden="true"></i><?php echo $user->time_elapsed($post['date']); ?>
<div id="upvote_<?php echo $post['id'];?>" class="panel">
<i class="fa fa-arrow-circle-up" style="font-size:22px; margin-top:10px;"></i> <b id="upvote_panel_<?php echo $post['id'];?>"><?php echo $post['upvotes']; ?></b>
<button style="float:right; margin-top:5px; width:90px;" class="btn btn-sm btn-success" type="submit"><i class="fa fa-arrow-circle-up"></i> Upvote</button>
</div>
<div id="downvote_<?php echo $post['id'];?>" class="panel">
<i class="fa fa-arrow-circle-down" style="font-size:22px; margin-top:-5px;"></i> <b id="downvote_panel_<?php echo $post['id'];?>"><?php echo $post['downvotes']; ?></b>
<button style="float:right; margin-top:-10px; width:90px;" class="btn btn-sm btn-danger" type="submit"><i class="fa fa-arrow-circle-down"></i> Downvote</button>
</div>
<div id="comment_<?php echo $post['id'];?>" class="panel">
<i class="fa fa-comment" style="font-size:22px; margin-top:-10px;"></i> <b id="comment_panel_<?php echo $post['id'];?>"><?php echo $post['comments']; ?></b>
<a href="/Web/Pages/Fun/Fun_Post.php?action=select&image_id=<?php echo $post['id'];?>" target="_blank">
<button style="float:right; margin-top:-13px; width:90px;" class="btn btn-sm btn-primary" type="submit"><i class="fa fa-comment"></i> Comment</button>
</a>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(function(){
$("#upvote_<?php echo $post['id'];?>").click(function(){
$.ajax(
{ url: "Home.php?upvote-btn=true?action=select&image_id=<?php echo $post['id'];?>",
type: "get",
success: function(result){
$('#upvote_panel_<?php echo $post['id'];?>').load(document.URL + ' #upvote_panel_<?php echo $post['id'];?>');
$('#downvote_panel_<?php echo $post['id'];?>').load(document.URL + ' #downvote_panel_<?php echo $post['id'];?>');
$('#comment_panel_<?php echo $post['id'];?>').load(document.URL + ' #comment_panel_<?php echo $post['id'];?>');
document.getElementById('result-box').innerHTML += result;
}
});
});
$("#downvote_<?php echo $post['id'];?>").click(function(){
$.ajax(
{ url: "Home.php?downvote-btn=true?action=select&image_id=<?php echo $post['id'];?>",
type: "get",
success: function(result){
$('#upvote_panel_<?php echo $post['id'];?>').load(document.URL + ' #upvote_panel_<?php echo $post['id'];?>');
$('#downvote_panel_<?php echo $post['id'];?>').load(document.URL + ' #downvote_panel_<?php echo $post['id'];?>');
$('#comment_panel_<?php echo $post['id'];?>').load(document.URL + ' #comment_panel_<?php echo $post['id'];?>');
document.getElementById('result-box').innerHTML += result;
}
});
});
});
</script>
<?php
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public函数selectUserPosts(){
试一试{
require_once('Class.Users.php');
$user=新用户();
$id=$_GET['id'];
$stmt=$this->conn->prepare(“从有趣的帖子中选择*,其中addedby=(“$id”)ORDER BY date DESC”);
$stmt->execute();
$result=$stmt->fetchAll();
foreach($result as$post){
?>
MVC-模型视图控制器
1) 在模型中,您必须放置所有逻辑并使用数据库和其他服务
2) 在视图中,您必须放置代码,这将看到用户(您不能调用逻辑方法或使用数据库等服务的函数)
3) 控制器必须将模型和视图连接在一起。当然,它必须是路由管理器,这不是准备好的语句的使用方式。参数化查询。你在找这样的东西吗:@tereško谢谢,我会调查的。谢谢你的回答。但我仍然不明白。就像我认为ajax/javascript代码需要在视图中,但它是函数,所以它进入模型?我不知道如何管理该工作。如果也是。如果是逻辑,那么它需要在模型中?!并且我必须返回不同的值,关于是否?您从数据库中选择帖子-它在模型中。然后您必须将变量与帖子一起传递给视图。您可以在视图中使用PHP代码,但必须是值,而不是调用services@CarParadise所以它就像:Modelpublic function getPosts(){..}
Controller$posts=$user->getPosts();
Viewforeach($posts as$post){…}
这实际上是错误的。“Model”不是“数据库抽象”.和控制器不是“交通警察”。他们的责任只是改变模型层的状态(与视图无关-至少在web上下文中).好的。这我已经理解了。但我仍然有关于javascript的问题?它进入视图了吗?因为,就像我有按钮和onClick一样,javascript开始工作。如果javascript将在不同的位置,它将不会正常工作?