全部,
我正在使用 MVC 模式构建一个小型 PHP 网站。在我的 Controller 中,我有一系列想要发送到 View 页面的文章。但是,我希望这些文章在 View 中一次显示一篇,并且仅当用户单击多个按钮之一时才更改为下一篇。一个按钮仅允许用户查看下一篇文章,其他按钮允许用户“评分”或认可该文章(此信息被发送回 Controller )并继续阅读下一篇文章。
我该怎么做?这些按钮位于一个表单内,每个按钮都附加了 Javascript 函数。代码的简化版本如下所示:
在 Controller 中:
<?php
$array=array(10,11,12,13,14,15,16);
$_SESSION['next']=true;
foreach($array as $a){
if($_SESSION['next']){
$_SESSION['next']=false;
$view=$a;
}
}
?>
查看中:
<script type="text/javascript">
function doOne(){}
function doTwo(){}
</script>
<form class="ReviewArticles" method='POST' accept-charset="UTF-8" action='index.php?action=reviewArticles'>
<p>
<textarea rows="4" cols="60" name='article' id='article' WRAP=SOFT>
<?php
echo $view;
?>
</textarea>
</p>
<p>
<button type="button" name='showNext1' id='showNext1' onclick="doOne()" >Show next 1</button>
<button type="button" name='showNext2' id='showNext2' onclick="doTwo()" >Show next 2</button>
</p>
</form>
我需要向 Controller 发送一些信息以加载数组中的下一个项目。我还需要发送一些与用户“认可”文章相关的其他数据,并且我希望这些数据一起发生(只需一个按钮)。
最佳答案
我想说你有两个选择:
1) 通过 AJAX 请求拉取文章信息,并在用户希望转到下一篇文章时显示。我认为这是最好的方法,因为它可以保证用户拥有文章的最新版本。
2) 页面加载时将文章信息存储在页面中。即,将数据写入 JavaScript 数组、隐藏的 html 元素或任何您喜欢的方法。当用户点击按钮时,使用页面上存储的数据加载文章。
这能回答你的问题吗?
关于php - 如何使用 View 按钮在 Controller 中调整 foreach 的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259115/