1

複数選択リストは次のように命名されます。<select name="list[]" multiple>

フォームが送信されたときに、ユーザーが何も選択していない場合は、その入力を無視したいと考えています。私はしようとしています:

if (isset($_POST["list"]))

if (count($_POST["list"]))

おそらく、少なくとも 1 つの項目が選択されていない限り、PHP が配列を受信しないためです。ユーザーが少なくとも 1 つのオプションを選択した場合、エラーは発生しません。

不満は、「リスト」が存在しないインデックスであるということです。

これらの解決策の少なくとも 1 つが必要です。サブミットで空の配列を強制的に送信して、インデックスが有効に$_POSTなるようにするか、エラーをスローせずにインデックス変数の存在をテストする必要があります。

私もtry-catch構文を使用しようとしていますが、それにも問題があります。その問題について別の投稿を開いています。

何も選択されていないリストボックスの検出に関する提案はありますか?

ありがとう、ダナ

4

1 に答える 1

3

使用してみてくださいempty()

if (!empty($_POST["list"])) {

あなたの場合、が!empty()設定されいて、少なくとも1つの値がある場合になります。TRUElist[]

ドキュメントから:

FALSEvar が存在し、空でもゼロでもない値を持つかどうかを返します。それ以外の場合は を返しますTRUE

次のものは空と見なされます。

  • ""(空の文字列)
  • 0(0整数として)
  • 0.0(0フロートとして)
  • "0"(0文字列として)
  • NULL
  • FALSE
  • array()(空の配列)
  • $var;(変数は宣言されていますが、値はありません)
于 2013-06-23T22:34:16.447 に答える