株式会社ネーブルス 社長のブログ
株式会社ネーブルス 代表取締役 福田一成のブログです。アメーバブログはこちら
やっとひとつできた。
ホームページ制作担当スタッフの方から
新商品用の動的ページの制作依頼が来ていたが
本日やっと完成。
あ。PHPの話ですよ。
最後のファイルのアップロードの部分が時間かかりました。
<input type="file" ・・・・>の
nameを配列にしたかった。
どういう事か、・・・。
form内の入力オブジェクトを全て配列にしたんです。
<input type="text" name="objname[address]"・・・>
<textarea name="objname[note]">・・・</textarea>
<select name="objname[type]">・・・</select>
$_REQUESTの結果は下記のようになります。
objname => array( address => ・・・, note => ・・・, type => ・・・)
上記の様に、しなきゃいいじゃんと言う意味不明な
ツッコミは入れないで下さいね。
そういう仕様にしなければならなかったので。
ところが、下記のようにすると配列変数が崩れてしまいます。
<input type="file" name="objname[image]・・・>
$_FILESの結果は、下記のようになるんです。
objname => array( name => array( image => ・・・)
type => array( image => ・・・)
tmp_name => array( image => ・・・)
・・・・)
これは、ファイルの複数のアップロードの仕様による
弊害と思われます。
複数アップロードするためのタグは、以下の様になります。
<input type="file" name="objname[]・・・>
<input type="file" name="objname[]・・・>
<input type="file" name="objname[]・・・>
つまり、objname[]をobjname[image]と書いても
複数アップロードの仕様で処理されてしまいます。
objname[image][]にすればと思われたでしょうが、
より面倒な事になります。もう一つ最後に
数値のキーが付くだけでした。
結果的に複数アップロードの仕様を考慮に入れた
作りになりましたが、配列が思う通りの順番ではない事を
頭に入れておかないと後の修正の時に再度、はまりますね。
まあ、でも、完成品はナカナカの作りになりました。
とりあえず自分でも満足です。
まだ、頼まれているものがあるから
継続的に作らねばいけないのですが。
一区切り。