Що я повинен використовувати в html та jquery, якщо хочу, за допомогою форми, подати (a) виконати певний файл php (url-a); (b) перенаправлення на інший. (url-b)
На даний момент я реалізував плагін форми jquery. http://jquery.malsup.com/form/#getting-started
Подібно до цього:
крок а. включені сценарії jquery та форми плагінів;
крок b. у html, у вигляді елемента:
<form action="url-a.php">
<!--form code inserted here including input elements, etc and submit-->
</form>
крок с. в js, всередині document ready
:
$("#form").ajaxForm(function() {
$.post("url-a.php", {a: a, b: b});
});
Чи слід змінити одне з цих посилань на URL? припустимо, що url-a - це той, про який повинен піклуватися аякс, і я хочу перенаправити на url-b ..
Дякую!
Відповіді:
3 для відповіді № 1$("#form").ajaxForm(function() {
$.post("url-a.php", {a: a, b: b});
window.location.href="/url-b.php";
});
1 для відповіді № 2
якщо ви хочете, щоб сторінка була перенаправлена, то чому ви хочете її надіслати ajaxly
будь-як, як у обробці успіху ви можете перенаправити на сторінку
$.post("url-a.php", {a: a, b: b},function(){
window.location.href="/page/to/redirect.php";
});
0 для відповіді № 3
у функції "завершеності" $.post(..)
слід змінити розташування браузера. Ви не можете використовувати переадресацію на сервер із ajax.
$.post("url-a.php", {a: a, b: b},function(){
window.location.href="/url-b.php";
});
Якщо ви хочете переадресувати до того, як з'явиться ajaxзавершено, це можливо, але важко. Я не знаю, як це зробити, наприклад, в PHP. Річ у тому, що якщо ви переадресуєте негайно (знову це потрібно зробити через javascript), то запит перервано у клієнта. І якщо запит перервано, сервер також його скасовує. Іноді на сервері можна запустити новий потік, який є окремим від потоку запиту, але якщо запит буде скасовано до того, як він повністю дістанеться до сервера, він усе провалиться.
Взагалі, не варто цього робити - це неправильний підхід. Або не переадресовуйте, або не запускайте запит ajax на попередній сторінці - запускайте його, як тільки завантажується нова сторінка.
Оновлення: я бачив, що вам потрібен ваш запит на ajax, щоб запуститись протягом години - це не трапиться - браузер затримається. Після того, як ви підтвердите, що одна година дійсно потрібна, Перевір це для асинхронних завдань php. Ви можете почати це з $(document).ready(function() {..});
2-ї сторінки