0

全て、

WAMPserver を使用して小さな Web サイトを構築しています。私のサイトは MVC パターンに従っています。ある時点で、コントローラー側で文字列の配列を生成します。各配列要素をユーザーに表示し、ユーザーがビューのボタンをクリックすると次の項目のみを表示したいと考えています。

各ステップでこれらのクリックの情報をキャプチャする必要があるため、配列全体をブラウザーに送信したくありません。さらに、処理が遅くなりすぎる可能性があります。

どうすればそれを達成できますか? foreachコントローラー側で配列をループに通すと、最後の要素のみがビューに送信されます。foreach内で値が変化するブール値でを制御しようとするforeachと、ユーザーのアクションに基づいてブール値を変更する方法がわかりません。

直感的には、これには Ajax 呼び出しが必要になると思いますが、Ajax の経験はほとんどなく、サーバーからデータをプルするためのすべての経験がありません。

または、Javascriptsubmit()関数をボタン クリック イベントに関連付けて、それを使用して変数を変更する必要がありますか (たとえば、サーバーの$_POST内部で変更するブール値として)。foreach

それとも、私はそれについて間違った方法で考えていますか?

4

1 に答える 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/0domain.com/item/view/1ますdomain.com/item/view/2。(ページネーションを介してリンクを提供します)

何が起こっているかというと、ルーターが を にルーティングするrequestためdomain.com/item/0、効果的に同じコントローラーに移動しますが、指定されたパラメーターdomain.com/{controller}/{method}/{id}に応じてビューを異なる方法でレンダリングします。

edit : URI にメソッドを入れるのを忘れていました

JS は必要ありません。

于 2012-11-09T01:02:08.390 に答える