В третьей функции мы не можем использовать данные первой?
Сможете, если будете объявлять переменные в глобал, например a = 0;
Но хочу заметить, сама логика хромает, зачем долбить три запроса (в случае успешного ответа)? Не проще ли выполнить один запрос, а выполнение условия предоставить серверу?
Небольшой пример кода, который иногда использую:
// где-то в одной далекой функции или событии собираю данные для запроса
var Id = '127';
var Name = 'Test';
var data = JSON.stringify({
Type:'Save',
Data: {
Id:Id,
Name:Name
}
}); // собираю JSON который будет отправлен, соотвественно можно отослать и не JSON
var s = {
type:'POST',
url:'conn.php',
data:data,
dataType:'json',
parent: 'thisFunction'
}; // подготавливаю данные для функции отправки
SendData(s); // вызываю саму функцию отправки
/////////////////////////////
function SendData(s) {
$.ajax({
type: s.type,
url: s.url,
data: s.data,
cache: false,
dataType: s.dataType,
timeout: 15000,
success: function(r) {
SendSuccess(r, s); // успех, шлем полученный ответ
},
error: function(jqXHR, textStatus, errorThrown) {
SendError(s); // ошибка, в SendError можно так же передать состояние ошибки, например SendError(s, textStatus)
}
});
}
function SendSuccess(r, s) {
if (s.parent == 'thisFunction') {
// вызываем необходимую функцию или событие, можем передать ответ r
}
}
function SendError(s) {
if (s.parent == 'thisFunction') {
// можем передать функции состояние ошибки, если логика работы вызвавшей или принимающей функции будет ожидать завершения какого-либо действия
}
}