2

次のような 3 つのチェックボックスがあるフォームがあります。

    <td>Wireless <input type="checkbox" name="services[]" value="wireless" /></td>
      </tr>
  <tr>
    <td>Cellular <input type="checkbox" name="services[]" value="cellular" /></td>
  </tr>
  <tr>
    <td>Security <input type="checkbox" name="services[]" value="Security" /></td>
<input type="submit" name="submit">

そして、私は($_POST)を抽出し、このコードを持っています

$comServices = implode(",", $services);

しかし、私はエラーが発生します:

警告: implode() [function.implode]: 無効な引数が渡されました..

このエラーが発生する理由を誰かが知っていますか?

4

3 に答える 3

15

チェックボックスがどれも選択されていない場合、$services は空の配列ではなく未定義になります。

$comServices = implode(",", (array)$services);それを防ぐためにできることがあります。

于 2010-05-06T21:23:26.547 に答える
2

$servicesチェックボックスがチェックされていない場合は空になります(null「空の配列」ではなく、のように空です)。

$services が実際に配列であるかどうかをテストする必要があります。

if (is_array($services))
 $comServices = implode(",", $services)
于 2010-05-06T21:24:16.420 に答える
0

通常、それは変数が配列ではないことを意味します... is_array() 関数で確認できます...

于 2010-05-06T21:24:44.653 に答える