0

私はCakePhpでウェブサイトを開発しています。フォームのチェックボックスを使用して、リスト上のいくつかのアイテムを選択するビューがあり、各アイテムには、このアイテムの追加情報でページを更新する「詳細情報」リンクがあります。

問題は、「詳細」リンクをクリックすると、以前に選択されたチェックボックスに関するデータが明らかに失われることです。私が思いつく唯一のことは、チェックボックスが変更されるたびに $this->Session を更新することですが、これが発生したときにコントローラーで関数をトリガーする必要があります。

他の解決策はありますか?

私はどこでも検索しており、Javascript と JQuery についていくつか見つけましたが、この方法でそれを行う方法もわかりません。

前もって感謝します。

4

2 に答える 2

2

すべてのテキストを送信してもかまわない場合は、非常に簡単です。

<div class='article'>
    <div>short text<a href="#" class="morebtn">more info</a></div>
    <div class="more hidden">long text</div>
</div>

jquery部分

$(".article").on('click', '.morebtn', function(){
  $(this).parents('.article').find('.more').removeClass('hidden');
});

CSS

.hidden { display: none }

ここにフィドルがあります

より良い解決策は、ajax リクエストを使用することです。また、実装するのはそれほど難しくありません。

これは、非常に基本的なリクエストを示すフィドルです。より高度なリクエストを行う必要がある場合は、完全な$ajaxリクエストも使用できます。

URL が無効なため、ajax リクエストの例は機能しないことに注意してください。URL を機能させるには、現在のページと同じオリジン (同じプロトコル、ドメイン、およびポート) からのものである必要があります。回避策はありますが、それは別の問題です

于 2012-08-21T12:35:38.790 に答える
0

AJAX を読んでください。これは、必要なことを非常に簡単に実行できる非常に優れたテクノロジです。概要:

  • ボタンがクリックされると、ブラウザは AJAX リクエストをサーバーに送信して、テキストをページのどこかに表示します。
  • ブラウザーが応答 (サーバーからの HTML フラグメント) を受け取ると、次のような関数が呼び出されます。

    function(data) { $('#description').html(data); }

AJAX リクエストを実行するには、5 ~ 10 行のコード (ほとんどが構成 + URL の構築) です。

主な作業は、テキストを提供するコントローラーを作成する必要があるサーバー側にあります。

ページが再ロードされることはないため、フォームの値を保持する必要はありません。

AJAX について学習するには、このチュートリアルから始めてください

于 2012-08-21T12:42:27.600 に答える