私は次のように複数選択しています:
<select multiple name="viewers[]"> ...
select の値は、配列として ajax 経由で php スクリプトに送信されます。私のテストサーバーでは、これはうまくいきました:
$viewers = $_POST['viewers'];
foreach ($viewers as $v)
{
//loop through array
}
同じバージョンの php (5.2.17) を実行している本番サーバーに同じスクリプトをアップロードしたところ、失敗しました。本番サーバーでは、$viewers は値が「array」の文字列になります。
print_r($viewers)
//outputs Array
echo $viewers
//outputs Array
PHP に $viewers を実際の配列として扱うように強制する php.ini 設定はありますか?
アップデート:
本番サーバーで var_dump($_REQUEST) を実行したところ、次の結果が得られました。
array(8) {
["viewers"]=>
array(1) {
[0]=>
string(9) "lilamonte"
}
["new_subject"]=>
string(12) "Test Subject"
テストサーバーでは、次のようになりました。
Array(5) {
["viewers"]=>
array(1) {
[0]=>
string(10) "libothwell"
}
["new_subject"]=>
string(4) "test"
1つは機能しますが、もう1つは機能しません。