0

ユーザーの選択に応じて配列を返す複数選択入力フィールドを持つフォームがあります。ユーザーは 12 個のオプションから選択できます。つまり、選択できるオプションは 12 個までです。また、ユーザーは複数のオプションを自由に選択できます。

したがって、最悪の場合、ユーザーが 12 個のオプションを選択し、アレイがこれらのオプションで POST されることになります。12 個を超えるオプションまたは 1 個未満のオプションを受け入れることはできません。

とにかく、Codeigniter のフォーム検証ライブラリを見ると、配列の長さを処理するための規則が見つかりませんでした (*_length配列に対して機能するのでしょうか?)

また、簡単な調査を行いましたが、役立つものや、問題に関連するものさえ見つかりませんでした。

私が念頭に置いている唯一の解決策は、配列の長さをチェックするカスタム関数を作成することです
(を使用count(Array)) 、 また、「車輪の再発明」が怖いです。

4

1 に答える 1

0

とにかく選択するオプションとして、送信されたすべてのものが実際に存在することを確認する必要があるため、投稿された配列データの長さを確認しようとはしません。

したがって、選択したものが選択可能なものであるかどうかを確認すると、入力が自動的に検証されます(最初に配列値を単純に一意にする場合)。

ただし、送信された値を選択可能な値と比較する必要があるため、カスタム関数が必要です。おそらくこれらの値はDBのどこかに存在するため、カスタム検証ルーチンで入力配列を取得し、何らかの理由で同じものを複数回送信しようとした場合に備えて一意にし、送信されたすべてのアイテムをループしてすべてが存在することを確認します選択可能なオプションとして。

ところで、「1つ未満のオプション」は、name参照している複数選択のPOSTデータがないことを意味します。

于 2012-08-21T07:45:18.357 に答える