2016-08-03 3 views
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> 
+0

Вам необходимо использовать объекты AJAX и XHR. Не имеет значения, где URL-адрес отправки: :). Вы можете инициировать обновление вручную после события пожарной тревоги формы. –

+0

'$ _SERVER [" PHP_SELF "]' метод перезагружает текущую страницу почтовыми данными. Вам нужно создать другую конечную точку для отправки своих данных через ajax. Между тем ваши данные загружаются, вы можете показать индикатор выполнения. –

+0

Два вышеуказанных комментария неверны. Есть несколько неудобных способов сделать это без ajax, но они на самом деле просто старые хаки, датируемые временем до того, как загрузка файла ajax получила широкую поддержку. Все по-прежнему требуют использования javascript в некотором роде - пытаетесь ли вы поддерживать старый браузер? Если нет, загрузка файла ajax является лучшим решением на сегодняшний день – Steve

ответ

0

Используйте эту Аякса функция для вызова РНР скрипт на другой странице

$('#loading_spinner').show(); 

    $.post('php_page.php', 
{pickup:pickup,dropoff:dropoff,km:km},function(data){ 
     $('#fare').html(data); 
     $('#loading_spinner').hide(); 
    }); 

на PHP странице представляет в формировать и возвращать данные в тариф DIV

набор #loadingspinner CSS для

#loading_spinner { display:none; } 

и использовать любой рисунок в IMG тег, чтобы показать Вертушка

<img id="loading_spinner" src="ajax-loader.gif"> 

на кнопки отправки использовать этот

onclick="javaScriptFunction();" 

и использовать эту АЯКС часть в javaScriptFunction()

Это пример вычисления KM между двумя точками на картах Google

Смежные вопросы