Я пытаюсь выяснить, как создать индикатор выполнения, отображающий ход формы. Теперь я нахожу много статей, где данные передаются через 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. Между тем ваши данные загружаются, вы можете показать индикатор выполнения. –
Два вышеуказанных комментария неверны. Есть несколько неудобных способов сделать это без ajax, но они на самом деле просто старые хаки, датируемые временем до того, как загрузка файла ajax получила широкую поддержку. Все по-прежнему требуют использования javascript в некотором роде - пытаетесь ли вы поддерживать старый браузер? Если нет, загрузка файла ajax является лучшим решением на сегодняшний день – Steve