入力サジェストを作って、インプットの表記揺れを無くしたい

1.前提条件

・ユーザーが情報をインプットする際に表記揺れをしないようにしたい
・自分の考えとしては、「①:過去にDBに登録している値は入力サジェストが表示されるようになる」もしくは「②:過去にDBに登録している値をドロップリストで選択する方式(ただし新しい値の場合はtext入力ができる)」という方法が良いと思っている

2.発生している問題

上記の実装方法を調べても分からない・・・

5.スクリーンショット

6.試したこと

shapeの上部が案①、下が案②のイメージです。
※案①についてはまるで方法がわからず、、、
※案②についてはDB(フィールド名がfoodです)に入っているものだけ選択できるようにしてみたが、新規の値を入れるときの回避方法がわからず、、、

image

7.補足情報 (調べたURL/参考になりそうな事例)

あまりこれといったものが見つからなかったです。

どうか、よろしくお願いします。

SearchBoxを使うと、DBに登録されている内容を検索して表示することができます。
登録していないデータの場合でもAllow entries not in…にチェックを入れることで、入力許可することができます。

「いいね!」 2

こちらありがとうございます。
search boxを試してみたらできました!!
これでユーザーの表記揺れさせないinputができそうですmm
image
※サンプル画面の例を少し変えてみました

問題が解決したうえで更にwantな実装なのですが、
・ユーザーが入力する時の初期条件としてはデフォルトで「マクドナルド」であり、「マック」や「マクド」ではない
・上記の目的としては、ユーザー間の表記揺れを防ぐため。将来的には例えば好きなハンバーガー店ランキングを作り「マクドナルド」と入力したユーザーの数を集計したい
・なお、チェーン店以外の店も許容したい(Allow entries not in…の入力を許容させた)ためdroplist形式では難しそうと考えてます
・一方で、単なるsearch boxだけにしてしまうとユーザーによってマックもマクドも入力されてしまいサジェストが荒れそうな予感です・・・

追加の質問で恐縮ですが、なにとぞよろしくお願いします!

「いいね!」 1

解決したようで何よりです。
追加の質問は難しそうですね。
被っている可能性のある候補を作る必要があるんじゃないでしょうか。
好きなハンバーガー店であれば、予め店名を入れておき、管理してしまったほうが良いと思いますよ。

「いいね!」 2

こちらご回答ありがとうございます。
追加でもう一点、search boxの使い方について質問させてください。

添付画像のように「マクドナルド」とすでに保存している値を参照して選択した場合に、データがうまく保存できません。
image

Workflowとしては、
image
のようのようにしているので、おそらく自分でタイプした値しか保存できていないものと推測しています。

もともとの設定はこちらの画像のとおりです。
image

このようなケースにおいて、
・過去に入力した値→参照したものを選択する
・過去に入力していない値→タイピングする
といった両方のケースに対応できる保存の仕方があれば、ご教示いただけますと幸いですmm

Search box typed text とSearch box valueは別物になります。
前者には入力したデータが入り、後者には選択したデータが入ります。
あとは入っている値によって条件分岐してあげればOKです。

「いいね!」 1

こちらありがとうございます。
教えて頂いた内容で実装することができました!
備忘として、実装したworkflowを残しておきます。


「いいね!」 2

ただ、追加でもう1点困りごとが出てきてしまい質問させてください。

image

DBに入力した値が複数同一の値がある場合に、サジェストに(1)(2)…といった形で重複して表示がされてしまいます。

こちらの重複をサジェストに表示させない方法を調べたのですが実装できずでして、、、対応方針教えて頂けますと幸いです。

DBに入力した値が複数同一の値がある場合に、サジェストに(1)(2)…といった形で重複して表示がされてしまいます。

これは表示を制限することはできません。
RepeatingGroupで作り直し、unique elementsをつけると、重複した値を表示しないことができます。

しかし、今回の場合は、重複した値を入れなければ良いのではないでしょうか。
値が入力された時に、重複していた場合は登録できない処理を追加すると良いと思います。

ご返信ありがとうございます!

今回のケースですと、例えば
・友達リスト>好きなお店(友達ごとに好きなお店を記録する。ただし友達間で好きなお店が重複するケースもあるので、その場合は同一の店名を入力させたい)
といった構造を実現したいと思っていたので、好きなお店は友達の人数分入力がされていくユースケースを想定しておりました!

ですので、

重複した値を入れなければ良いのではないでしょうか。
値が入力された時に、重複していた場合は登録できない処理を追加すると良い思います
は今回は難しいのかなーと思いました。
(※ユースケースの後出しですみません。)

ですので、やるならRepeatingGroupで過去に入力した値を表示することな気もしましたが、search boxのように「サジェストで選択式」or「自分で入力する」を両立させるのが少し実装難易度高い気もしており、、
いっそのことDyamic choiceではなくてStaticsにしておき店名候補として主要なお店の名前をすべて用意していおくほうがいい気もしており、その方針も検討してみることにします!