やりたいこと
同ページ内での絞り込み検索
用意してあるページ
index
用意してあるType
school
Type内にあるカラム
name(text)
price(text)
support(yes/no)
campaign(yes/no)
skill01(yes/no)
skill02(yes/no)
検索機能
checkboxとdropdownでの選択
buttonを押したら絞り込み
ページ内で絞り込み検索を行いたいのですが、初期状態ではtype内の全レコードをRGで表示しておきたいです。
RGは初期状態と何もチェックしていない状態の時には全て表示。
絞り込み検索した際に条件にあったものを表示。
buttonをクリックした際にどのようにチェックボックスのyesを引っ張ってくれば良いのかがわからずです。
よろしくお願いいたします。
「いいね!」 1
こんばんは。
質問の内容からこのような感じかなという推測ですが…。。。
Type
仮ですが、このような配置にしました。
実現したい動作は、Buttonを押したときに検索結果を反映させるということで、
「Buttonを押したときに条件を入れたDBを表示する」というように持っていく必要があります。
今回は、上のcheckboxにそれぞれstateを用意しました。
スキル1のcheckboxにはskill01_state(yes/no)のようなものを設定しました。
同様に、他のcheckboxにもstateを設定しています。
画面に表示されるRGには、schoolを指定して表示させます。
____
次にworkflowに移り、それぞれのcheckboxの値が変化したときに、setstateを変更するというようなworkflowを入れます。
すべてのcheckboxに同様の設定を行います。
ButtonにRepeatingGroupのDBをsetstateの状態を条件としていれ、Displaylistをおこないます。
そうすると以下のような動きになります。
「いいね!」 4
ご丁寧にありがとうございます!
何もチェックをせずに検索を押した場合は、いいえで絞るのではなく全てのレコードを表示させたいのですが、その場合はonlywhenを使えばよろしいのでしょうか?
「いいね!」 2
そうですね、若干ややこしいですが、workflowを追加していただければそのように動作すると思います。
「いいね!」 1
何もチェックをせずに検索を押した場合は、いいえで絞るのではなく全てのレコードを表示させたいのですが、その場合はonlywhenを使えばよろしいのでしょうか?
絞り込み条件に「Ignore empty constraints」を指定すると、絞り込み条件が空の場合に絞り込みを行わずに全てのデータを表示させることができます。
「いいね!」 3
ありがとうございます!
dropdownのテキストも同時に絞り込み条件に入れたいのですが、同じ要領で問題ないのでしょうか?
一応試してみたのですが、こちらはうまく行かず…
又、条件を変えて複数回検索すると最終的に単一絞り込みでも0件になってしまいます。
①と②に該当するレコードがある状態。No.10
②と③に該当するレコードもある状態。No,20
1回目:①と②で絞り込む→No.10が表示される
2回目:②だけで絞り込む→No.10のみ表示される
3回目:③だけで絞り込む→何も表示されない
チェックボックスでYesになったまま絞り込みがされてしまっている状態なのかな?と見受けられます。(ページをリフレッシュすると治ります)
clearlistを利用するだけでは治りませんでした。
「いいね!」 1
ここを考えていたのですが、
「すべていいえ、という条件」「すべてを表示させる(=条件はなにもない)」が混在していると表示がされないような気がしてきました。
回避策としては、違うボタンを表示させるなどして、Aを押すと、検索結果を表示させる、Bを押すと、条件をいれずにすべて表示させるというようにするなどが考えられます。
もうちょっと考えてみます。
条件を変えて複数回検索すると最終的に単一絞り込みでも0件になってしまいます。
こちら確認できました。
Jansnapさんのこのテクニックを使うと回避ができましたので参考にしてみてください。
「いいね!」 2
チェックボックスでYesになったまま絞り込みがされてしまっている状態なのかな?と見受けられます。(ページをリフレッシュすると治ります)
そうですね。checkしていない="no"なので、その状態と選択していないemptyという状態が混在しているのが問題だと思います。
checkboxではなく、dropdownで条件を指定するのはどうでしょうか?
こんな感じで3つの状態を選択できるようにして、そこにemptyも含めると、emptyという状態を指定することができます。
ワークフローでは、
こちらのように文字一致を利用することでstateを変更する形です。
いかがでしょうか???
「いいね!」 3
こちらがjasnapさんのやり方を真似させていただいても直りません…
どこかおかしい点ありますでしょうか?
「いいね!」 1
こちらでもエラーが再現できないか調べていますが、問題なく動作します。
Kondoさんが紹介されている方法
stateの初期値を"いいえ"にしておいて、DynamicStatusをCheckbox〇〇’s stateとしておいて(チェックボックス空白=いいえ)、常にStateの状態とcheckboxのStateを一致させるようにすると、emptyが回避できるかと思います。
こちらも試してみてください。
____
ちなみにデバックモードは試されましたか?
プレビュー画面で
右下のinspectを押すと、各elementの値などを調べることができます。
ここで誤った値が入っていないか、ワークフローで想定した動きになっているかを確認してみてください。
「いいね!」 1
チェックを入れないで検索をかけた際に、noと指定していたことが問題でした。
チェックを入れていない時は空にすると言う設定にしたら、思ったように挙動できました!
「いいね!」 3
ご自身で解決されたのですね!
安心しました。よかったです!
「いいね!」 1