質問: ### 前提・実現したいこと ここに質問の内容を詳しく書いてください。 PHPでファイルをアップロードするプログラムを作っています。 ファイルアップロード中に、ボタンがロックされ「現在アップロード中です」のような画面を表示するには どうすればよいでしょうか? ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` ### 該当のソースコード ``` ``` ### 試したこと まずアップデートボタンを押下した際にボタンが押せなくなるようなコードを探しましたがうまくいきませんでした ``` アップロード処理のサンプル コード 現在こんな感じです。もちろん動きませんが ``` ### 補足情報(FW/ツールのバージョンなど)
回答: formのsubmitを絡める以上はaction先に送信しますので、いわゆる画面遷移がおこります Ajaxによる非同期アップロードをしてはどうでしょうか。 レスポンスが返ってくるまでJavaScriptで画面上に「アップロード中」と表示をしておけばそれっぽくはなります。 ※それなりのサイズでなければ一瞬で終わります。fadeIn()→fadeOut()を利用することで若干見せる時間は延ばせますが また「今何%」も出したいのであれば、jQueryのファイルアップロードのプラグインが幾つかあるのでそちらを使う手もあります。 ちなみに。 > > アップデートボタンを押下した際にボタンが押せなくなるようなコードを探しました > > > submitした時点で送信されますし、押したあとに非活性にしても効果はありません。 PHPでechoされたものは画面が表示されるときに一緒に出力しますので、本当にアップロード中に「アップロード中」と出すことはできません。 その文言が出たときにはアップロード終わってます。簡易二重サブミット対策で入れるのは構わないと思いますけどね。 なので、form送信ではなくAjaxで非同期で情報をサーバーに送信する方法が適当だと思います。