- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IEで、implodeが Bad arguments になります。)
IEでimplodeがBad argumentsになる問題の解決方法
このQ&Aのポイント
- 配列で次のページにPOSTで渡し、implodeでセレクト文に入れようとすると、IEでは正しく動作しない現象が発生します。
- 環境はCENTOS 5、Mysql 5.0.45でUTF-8 Unicode(utf8)の文字セットを使用しており、PHP 5.0でHTMLとPHPをUTF-8で書いています。
- IEでの問題を解決する方法または別の方法があれば教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
フォームから配列で値をPOSTしようとしているのですね。そこが問題なのであれば、データベースと接続するのではなく、問題の切り分けができるシンプルなソースで試した方がいいでしょう。 ちなみに次のようなシンプルなソースで試したところ、FirefoxでもIE7でも配列として値はもらえることを確認しました。 ―――― <html> <body> <? var_dump($_POST); ?> <hr> <form method="POST" action="<?=$_SERVER["PHP_SELF"]?>"> <input type="text" name="a[]"><br> <input type="text" name="a[]"><br> <input type="submit" name="sub"><br> </body> </html> ――――
お礼
お礼が遅くなりました。 アドバイス通り、問題を切り分けて・・ 試していたのですが、どうしても配列が渡せませんでした。 POST自体が配列と言うことが分かったのですが、 何か根本的な勘違いをしているみたいです。 今回は時間切れで、代替の方法で乗り切る予定です。 配列を送る側では IDを送ります。 <? select ****** while($col = mysql_fetch_array($rst)) { $id =$col["id"] $id[] =$id } $mailid = implode(",",$id); ?> <input type="hidden" name="mailid" value="<?=$mailid?>" /> これでPOSTで送ります。 何かへんなことをしているという自覚は有るのですが、 どうしても出来ませんでしたので。 このような方法を取りました。 ありがとうございました。
補足
早速、アドバイスありがとうございます。 配列の事、あまり良く分かっていないのですが 最近少し理解してきた感じです。 投稿してからも色々やってみるのですが、 そうですよね、問題の切り分けですね。 *基本を忘れていました。ちょっとパニックを起こしていました。。 教えていただいた方法は試していませんでしたが、 根本的におかしいのかもとも思います。 FireFox に print_r($配列の関数); と入れると、 Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 [4] => 6 [5] => 11 [6] => 12 [7] => 13 [8] => 14 ) このように表示するのに、IEでは 1,2,4,5,6,11,12,13,14,15 数字だけしか表示していません。 配列が渡せてないのでしょうか? ちょっと私には難しくて、配列が渡せない事が分かりません。 問題の切り分けが難しいのですが、頑張ってみます。 追加でアドバイス宜しくお願いいたしますm(__)m