0

全部,

我正在使用 WAMPserver 构建一个小型网站。我的网站遵循 MVC 模式。有一次,我在控制器端生成了一个字符串数组。我想向用户显示每个数组元素,并且仅在用户单击视图上的按钮后才显示下一个项目。

我需要在每个步骤中捕获这些点击的信息,因此我不想将整个数组发送到浏览器——而且它可能会使事情变得太慢。

我该如何做到这一点?如果我将数组foreach放在控制器端的循环中,我只会将最后一个元素发送到视图。如果我尝试foreach使用其值在 内部更改的布尔值来控制foreach,我不知道如何根据用户的操作更改布尔值。

直觉上我想这需要一个 Ajax 调用,但我对 Ajax 的经验很少,所有这些都是从服务器中提取数据的。

或者,我是否应该尝试将 Javascriptsubmit()函数与按钮单击事件相关联并使用它来更改$_POST变量(例如,作为布尔值,然后我将foreach在服务器上更改回内部)?

还是我想错了?

4

1 回答 1

1

因此,您有一个包含多个项目的数组,并且您希望用户在跟踪他们的点击时一次阅读它们?

不确定您使用的是什么框架,但大多数控制器方法都允许您使用参数。所以控制器看起来像这样:

class ItemController {
    public function view($id = 0) {
        DB::increment('counter to increment');
        $array = DB::get('db query here or something');
        View::render($array[$id]);
    }
}

然后用户将依次访问domain.com/item/view/0, domain.com/item/view/1, domain.com/item/view/2。(您将通过分页提供链接)

发生了什么,您的路由器会将requestof路由domain.com/item/0domain.com/{controller}/{method}/{id},因此它们有效地转到同一个控制器,但根据给定的参数呈现不同的视图。

编辑:忘记将方法放在 URI 中

不需要JS,希望有帮助。

于 2012-11-09T01:02:08.390 回答