$('html').on('click','#save,function() {
var v = $('.chosen-select').find('option:selected').val();
var t = $('.chosen-select').find('option:selected').text();
$.ajax({
type: 'POST',
url: 'send_url.php',
data: {v:v, t:t},
cache: false,
dataType: 'json',
timeout: 15000,
success: function(r) {
console.log(r);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
}
});
});
$.ajax({ type: 'POST', url: '/api/customer/test', data: fdx, processData: false, containType: false, dataType: "json"});
console.log(fdx);
RequestBlock == true; // разрешаем в глобале запросы
$('html').on('click','.element',function() {
var data = {
RequestHead: {
RequestTarget:'somePhpFunction', // вызываемая функция php, любое имя
RequestType:'Update' // тип
},
RequestData: {
select:'0' // id
}
}
var data = JSON.stringify(data);
var s = {
type:'POST',
url:'lib/CONNECT.php',
data:data,
dataType:'json',
parent:'somePhpFunction'
};
SendData(s); // отправляем данные
});
function SendData(s) {
if (s.type && s.type.length || s.url && s.url.length || s.data && s.data.length || s.dataType && s.dataType.length || s.parent && s.parent.length) {
if (RequestBlock == false) {
console.log('выполняется другой запрос');
} else if (RequestBlock == true) {
RequestBlock = false; // блокируем параллельный запрос, ждем выполнения текущего
$.ajax({
type: s.type,
url: s.url,
data: s.data,
cache: false,
dataType: s.dataType,
timeout: 15000,
success: function(r) {
RequestBlock = true; // для избежания ошибок получения данных не той функцией - блокируем повтороную отправку данных переменной RequestBlock. Теряем ассинхронность, зато упрощаем логику отправки и приема данных
SendSuccess(s, r);
},
error: function(jqXHR, textStatus, errorThrown) {
RequestBlock = true;
if (textStatus === 'timeout' || textStatus === 'abort' || textStatus === 'parsererror') {
console.log('ошибка');
} else if (textStatus === 'error') {
console.log('ошибка');
} else {
SendError(s, r);
}
}
});
}
}
}
function SendSuccess(s, r) {
if (s.parent == 'somePhpFunction') {
RsponseForSomePhpFunction = r; // выносим в глобал уникальную переменную или передаем функции
JsSomePhpFunction(r);
// вызываем функцию пост-обработки
}
}
function SendError(s) {
if (s.parent == 'somePhpFunction') {
console.log('ошибка');
}
}$RequestParameters = json_decode(file_get_contents("php://input"));
if (!empty($RequestParameters->RequestHead) || !empty($RequestParameters->RequestData)) {
if (!empty($RequestParameters->RequestHead->RequestTarget) || !empty($RequestParameters->RequestHead->RequestType)) {
if ($RequestParameters->RequestHead->RequestTarget == 'somePhpFunction') {
// если надо, можно прямо тут задействовать RequestType
$Result = somePhpFunction($RequestParameters); // вызываем функцию
}
} else {
$Result = array(
'ResponseStatus' => "error",
'ResponseData' => "error: 0002"
);
}
} else {
$Result = array(
'ResponseStatus' => "error",
'ResponseData' => "error: 0001"
);
}
echo json_encode($Result);
RequestBlock = true; // в глобале разрешаем запрос
if (RequestBlock == false) {
console.log('ничего не делаем');
} else if (RequestBlock == true) {
RequestBlock = false; // блокируем следующий запрос пока не отработает $.ajax
$.ajax({
type: 'POST',
url: 'URL',
data: {},
cache: false,
dataType: 'JSON',
timeout: 15000,
success: function(r) {
RequestBlock = true;
console.log(r);
},
error: function(jqXHR, textStatus, errorThrown) {
RequestBlock = true;
}
});
}
$(document).on('keydown','body',function(e) {
if (e.which == 44) {
console.log('Тырк!');
} else {
console.log('Не тырк!');
}
});
var data = {
param1: {
0:'val1',
1:'val2'
},
param2: {
0:'val1'
}
};
var data = JSON.stringify(data);
$.ajax({
type: 'POST',
url: 'URL.php',
data: data ,
cache: false,
dataType: 'json',
timeout: 15000,
success: function(request) {
},
error: function(jqXHR, textStatus, errorThrown) {
}
});$request = json_decode(file_get_contents("php://input"));
echo ($request->param1->0);
<p class="tel">8-800-</p>
<p class="name">ИМЯ</p>
<a href="#" class="send">send</a>$('html').on('click','.send',function() {
var a = $('.tel').text();
var b = $('.name').text();
$.ajax({
type: 'POST',
url: 'URL',
data: {
'tel': a,
'name': b
},
cache: false,
dataType: 'json',
timeout: 15000,
success: function(result) {
// тут что-то делаем с ответом
},
error: function() {
// выводим ошибку
}
});
});