たぶん、次のようなものを使用します:
<input type="file" name="mp3" onchange="this.form.submit();" />
私はインライン イベント ハンドラーを容認しませんが、それが確実に機能することを確認するための例にすぎません。onchange
ポイントは、入力のイベントをキャッチして、file
そのフォームを送信することです。などを使用する代わりに、IDthis.form
を取得しform
て (ID を指定した後)、それを呼び出すsubmit()
ことができます。
アップデート:
既存の PHP コードの動作を維持するには、送信ボタンにid
属性 (「送信」以外のもの) を指定し、これを使用してみてください。
<input type="file" name="mp3" onchange="document.getElementById('submit_button_id').click();" />
繰り返しますが、次のように関数呼び出しを行うと、これをより保守しやすく/読みやすくすることができます。
<input type="file" name="mp3" onchange="submitForm();" />
<input type="submit" name="submit" id="submit_button_id" value="Upload" />
<script type="text/javascript">
function submitForm() {
// However you need to submit the form
document.getElementById("submit_button_id").click(); // Or whatever
}
</script>
PHP を変更したい場合は、元のものを使用できますthis.form.submit();
(または.submit()
、何らかの方法でフォーム要素で使用できます)。PHP では、本当に気にするのは$_FILES['mp3']
が設定されているかどうかを確認することなので、送信ボタンの存在を確認する必要があるかどうかはあなた次第です。どのように機能するかを正確に忘れてisset()
いるので、何か間違ったことを仮定したり、伝えたりしたくありません。他のロジックを使用できるかもしれませんが、実際に気にするのは、送信にボタンが使用されていることを確認した場合に「より良い」ものになる可能性がありますが、送信時にファイルが送信されたかどうかです (ただし、必須ではありません)。 )。