Я новичок в AJAX и в процессе преобразования некоторых обычных форм HTML в AJAX.Нет Javascript Fallback для отправки формы AJAX
Моя существующая реализация выглядит следующим образом: form (на странице1.php) сообщения на page2.php, который выполняет некоторую проверку почтовых данных и перенаправляет на страницу с ошибкой, если что-то отсутствует. Если ввод в порядке, он включает page3.php, который обрабатывает запрос и перенаправляет обратно на page1.php.
PHP/page1.php
<form method="post" action="/php/page2.php" >
<input type="text" name="input1" placeholder="Howdy..." />
<input type="text" name="input2" placeholder="Howdy..." />
<input type="submit" value="Submit" />
</form>
PHP/page2.php
<?php
// perform some validation on inputs
if (empty($_POST['input1']))
{
$location ='Location: /php/error.php';
header($location);
exit;
}
// Inputs are fine
include('/php/page3.php');
?>
page3.php
<?php
// do some form processing
// redirect back to page1.php
$location = 'Location: /php/page1.php";
header($location);
exit;
?>
Чтобы преобразовать в AJAX, я использую @ решения SSL на это СО ссылка How to show loading gif when request goes Ajax http://jsfiddle.net/clickthelink/Uwcuz/1/
Ошибка с страницы проверки и успешности отображается на странице1.php обратно через функцию обратного вызова.
PHP/page2.php
<?php
// perform some validation on inputs
if (empty($_POST['input1']))
{
// Echo erorr code isntead of redirect
echo "Please enter input1";
return;
//$location ='Location: /php/error.php';
//header($location);
//exit;
}
// Inputs are fine
include('/php/page3.php');
?>
page3.php
<?php
// do some form processing
// Echo success instead of redirect
echo "SUCCESS";
// redirect back to page1.php
//$location = 'Location: /php/page1.php";
//header($location);
//exit;
?>
Эта часть работает отлично.
Мой вопрос (наконец), как обращаться с пользователями, у которых отключен javascript? Я знаю, что форма будет отправлена соответствующим образом, но я не получу перенаправление в случае ошибки или успеха. В этом случае я хотел бы сохранить тип перенаправления заголовка(). Это возможно? Я был бы признателен за помощь.
Вы можете легко узнать, является ли запрос вызовом AJAX или нет, поэтому он устанавливает HTTP-заголовок. Поэтому должно быть возможно, чтобы ваш PHP-сервер реагировал по-разному в случае отправки формы без js. – gpgekko
Не знаете, почему этот вопрос ниспровергнут? Был бы признателен, если бы человек, оказавшийся в стороне, оставил комментарий, чтобы я знал, что я делаю неправильно.Кстати, я нашел несколько вопросов о SO об AJAX-резерве без JS, но ничего особенного для повторного направления назад на исходную страницу. – user3573508
@gpgekko Спасибо за ваш быстрый ответ. Вы предлагаете то же самое, что предложили quoo? или что-то другое – user3573508