В принципе у меня есть одна форма, которую я хочу передать переменным на два отдельных php-скрипта для обработки на submit. То, что я сделал, кажется, работает отлично для моих целей, мне просто интересно, есть ли способ сделать это внутри одного сценария jquery вместо того, чтобы повторять сценарий и изменять URL-адрес, как я это сделал. Или это путь, который прошел? не могу найти много примеров этого использования в Google, но, возможно, я не искал правильные вещи. Также, если я делаю что-то плохое, пожалуйста, дайте мне знать, я очень новичок в Ajax, и каждый учебник, который я следую, по-видимому, делает что-то по-другому.Форма Ajax, представляющая два сценария
<script>
$(document).ready(function(){
$('#sform').submit(function(){
// show that something is loading
$('#response').html("<b>Loading response...</b>");
/*
* 'post_receiver.php' - where you will pass the form data
* $(this).serialize() - to easily read form data
* function(data){... - data contains the response from post_receiver.php
*/
$.ajax({
type: 'POST',
url: 'move_to_lease.php',
data: $(this).serialize()
})
.done(function(data){
// show the response
$('#response').html(data);
})
.fail(function() {
// just in case posting your form failed
alert("Posting failed.");
});
// to prevent refreshing the whole page page
return false;
});
});
</script>
<script>
$(document).ready(function(){
$('#sform').submit(function(){
// show that something is loading
$('#txtHint').html("<b>Loading response...</b>");
/*
* 'post_receiver.php' - where you will pass the form data
* $(this).serialize() - to easily read form data
* function(data){... - data contains the response from post_receiver.php
*/
$.ajax({
type: 'POST',
url: 'show_lease_sub.php',
data: $(this).serialize()
})
.done(function(data){
// show the response
$('#txtHint').html(data);
})
.fail(function() {
// just in case posting your form failed
alert("Posting failed.");
});
// to prevent refreshing the whole page page
return false;
});
});
</script>
Там нет необходимости повторять всю функцию - вы можете просто сделать два последовательных AJAX звонки внутри одна функция. Однако нужно спросить, почему ваш скрипт serveride не обрабатывает всю необходимую обработку в одном скрипте? –
Мне нужны две формы для работы отдельно. один отправляет данные, введенные в него, а другой - поле выбора Ajax, которое используется для отображения визуального представления аренды устриц. Этот флажок должен иметь возможность показывать любое количество различных договоров аренды в указанном div, и поэтому он разделен на основную форму. однако мне нужно, чтобы этот div обновлялся при отправке основной формы, чтобы отображать новые записи на дисплее. вот почему я сделал это так. Когда вы говорите «сделайте два последовательных звонка AJAX», вы имеете в виду данные, чтобы сказать data2? – Matt
Предположительно, ваш второй PHP-скрипт опирается на данные, которые обновляются первыми. Если это так, вам не нужно отправлять данные во второй раз, но у вас есть условие гонки, так как вы эффективно отправляете сразу два запроса, и вы не можете быть уверены, что первый вызов AJAX будет завершен до второго вызова AJAX запрашивает новые данные. Либо ваш первый вызов должен обрабатывать обновления и возвращать новый набор данных (один вызов AJAX, один скрипт), либо второй вызов должен запускаться в методе '.done()' первого, чтобы гарантировать правильную последовательность. Здесь, кажется, больше, чем ваш вопрос. –