1
提出されているフォームの進行状況を視覚化するプログレスバーを作成する方法を探しています。今では、AJAX/jQueryを介してデータが解析されている別のPHPファイルにデータが送信されている記事がたくさんあります。
しかし、フォームのアクション属性が$ _SERVER ["PHP_SELF"]で、データが同じファイル内のPHPで処理されている場合はどうすればよいですか? (送信ボタンは、ページの更新を押した後。)
例:
<?php
if(isset($_POST['submit']) && !empty($_POST['submit'])){
// some validation code combined with error_message array here
// uploading data to server and database here
}
?>
...
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST" id="aaa" enctype="multipart/form-data">
<input type="text" name="title" id="title" size="55" maxlength="55" required>
<textarea name="description" id="description" maxlength="155" rows="3" cols="55" required></textarea>
<input type="file" name="images[]" id="file_input">
<input type="file" name="images[]" id="file_input">
<input type="file" name="images[]" id="file_input">
<input type="submit" value="Submit" name="submit" id="submit">
</form>
AJAXとXHRオブジェクトを使用する必要があります。 URLを送信している場所は関係ありません:)。フォームファイアウォール成功イベントの後に手動でリフレッシュを開始できます。 –
'$ _SERVER [" PHP_SELF "]'メソッドは現在のページをポストデータでリロードします。 ajaxを使用してデータを送信するために、別のエンドポイントを作成する必要があります。一方、あなたのデータはロード中です。あなたは進行状況バーを表示することができます。 –
上記の2つのコメントは間違っています。 ajaxなしでこれを行うにはいくつかの厄介な方法がありますが、Ajaxファイルのアップロードが広くサポートされるまでの間に行われた古いハックです。すべてはまだ何らかの形でjavascriptの使用を必要としています - 古代のブラウザをサポートしていますか?もしそうでなければ、AJAXファイルのアップロードはこれまでのところ最高の解決策です。 – Steve